Java 日志开关的实现
此代码:Java 日志开关的实现,java,android,Java,Android,此代码: 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"
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...
}
}
没有
使用布尔资源在整个应用程序中切换日志记录的主要思想
我可以为类中的每个函数成功地声明这个变量,但对整个类只能声明一次吗?您考虑过使用合适的日志框架吗 如果您使用slf4j API,您可以编写如下内容
log.debug("A={}, B={}", a, b)
开关在外部以文档化的方式设置是否生成日志语句。slf4j{}-构造还允许延迟对a.toString()和b.toString()的调用,直到日志框架确定实际需要生成日志消息
slf4j是一个API。您有几个后端可供选择。对于初学者,您可以选择“简单”后端
请参阅以获取介绍。我在特殊类中使用了静态变量,而不是将值放入字符串资源
public class constants {
public static final boolean logging = true;
}
因此可以从任何活动中访问:
private boolean logging = constants.logging;
非常感谢。我使用的是android.util.Log框架,你建议我使用同一框架的外观。要实现slf4j,我必须重写大量代码。让我们保持简单。我只需要一个全局设置变量。editet问题来关注这个问题