gpt4 book ai didi

java - 在 Java 中编译或输出调试代码

转载 作者:行者123 更新时间:2023-12-01 13:48:45 25 4
gpt4 key购买 nike

我希望能够在制作生产版本时编译出我的调试代码(详细日志记录等),但编译后进行调试。

我知道,如果我对一个常量进行分支,编译器将删除该分支,这就是我想要的。所以我有一个类:

class Debug {
public static final boolean ON=true;
}

我的调试代码位于这样的分支内:

if (Debug.ON) {
// Verbose / expensive logging goes here
}

我的问题是,在没有实际编辑源文件的情况下,如何安排 Debug.ON 在编译时设置为 true 或 false?

编辑:请注意,我不关心控制日志输出是否出现 - 我正在使用 java.util.Logging,它可以处理这个问题。我更关心的是编译出任何昂贵的代码,这些代码正在准备永远不会输出的日志消息,或者进行生产模式中不需要的测量。

我想我可以有一个 ant 目标,它可以从模板或其他东西生成源文件,但这看起来像是一个黑客。在 C++ 中,我可以定义一个预处理器符号,我可以用 -D 传入该符号 - 有 Java 等效项吗?或者其他更好的方法?

最佳答案

您可以做的是拥有两个 Jars 或类文件。

一个包含 Debug 类,且 ON = true,另一个包含 ON = false。

然后,当您根据所需的调试状态进行编译时,您可以在 class/jar 文件上包含 DEBUG 或在 class/jar 文件外调试。

关于java - 在 Java 中编译或输出调试代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20136624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com