gpt4 book ai didi

java - 日志开关实现

转载 作者:行者123 更新时间:2023-12-02 08:05:58 24 4
gpt4 key购买 nike

这段代码:

public class MyActivity extends Activity {

private final boolean logging = getResources().getBoolean(R.bool.logging);

@Override
public void onCreate(Bundle savedInstanceState) {

if(logging) Log.d("my_log", "some text here");

// some onCreate code...
}
}

生成 NullPointerException。

但是这个:

public class MyActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {

final boolean logging = getResources().getBoolean(R.bool.logging);
if(logging) Log.d("my_log", "some text here");

// some onCreate code...
}
}

没有。

使用 boolean 资源在整个应用程序中切换日志记录的主要思想。

我可以成功地为类中的每个函数声明这个变量,但是可以为整个类声明一次吗?

最佳答案

您是否考虑过使用合适的日志框架?

如果您使用 slf4j API,您可以编写类似的内容

log.debug("A={}, B={}", a, b)

其中开关以有据可查的方式在外部设置是否生成日志语句。此外,slf4j {} 结构允许延迟对 a.toString() 和 b.toString() 的调用,直到日志框架决定实际需要生成日志消息之后。

slf4j 是一个 API。您有多个后端可供选择。对于初学者,您可以选择“简单”后端。

参见http://slf4j.org/manual.html进行介绍。

关于java - 日志开关实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8163570/

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