Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 日志开关的实现_Java_Android - Fatal编程技术网

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问题来关注这个问题