SLF4J Android 1.7.+ 未登录 Logcat
SLF4J Android 1.7.+ not logging on Logcat
在我的 build.gradle 中,logcat 在
时可见
debugCompile 'org.slf4j:slf4j-android:1.6.1-RC1'
但是版本更新后,有logcat
debugCompile 'org.slf4j:slf4j-android:1.7.14'
我坚持使用 1.6.1-RC1 版本。为什么较新版本的 slf4j-android:1.7.x 没有记录在 logcat 中?
我在这样的代码中使用 SLF4J
private static final Logger LOG = org.slf4j.LoggerFactory.getLogger(TAG);
LOG.debug("variable = {}", var);
参考资料
我刚刚查看了 source code of AndroidLoggerAdapter.java 代码 1.7.+ 现在在每个日志语句之前使用 if isLoggable(priority)
而 1.6.+ 只是在不询问的情况下记录。
android 默认功能
if (Log.isLoggable("MY_TAG", Log.VERBOSE))
总是 return false while
Log.v("MY_TAG", "Here's a log message")
仍然有效
这解释了为什么 org.slf4j:slf4j-android:1.7.14 不再工作。
也许这有助于应对新版本:Android logging levels
我正在使用 http://github.com/lp0/slf4j-android 另一种实现,它使用配置文件来 enable/disable 配置设置
http://jira.qos.ch/browse/SLF4J-314给了我答案。
要查看 "slf4j-android:1.7.x" 上的日志,使用 Android setprop 是官方方法。
这种方法的缺点是您必须 select TAG 但不能显示所有日志。例如在 logcat 中:
app_package D/TAG1: blabla
app_package D/TAG2: lorem ipsum
在终端中,输入
adb shell setprop log.tag.TAG1 VERBOSE
我只会显示 TAG1 而不会显示其他 TAG。我想知道是否可以打印所有其他标签。
现在,我想我会坚持使用 1.6.1-RC1 版本
在我的 build.gradle 中,logcat 在
时可见debugCompile 'org.slf4j:slf4j-android:1.6.1-RC1'
但是版本更新后,有logcat
debugCompile 'org.slf4j:slf4j-android:1.7.14'
我坚持使用 1.6.1-RC1 版本。为什么较新版本的 slf4j-android:1.7.x 没有记录在 logcat 中?
我在这样的代码中使用 SLF4J
private static final Logger LOG = org.slf4j.LoggerFactory.getLogger(TAG);
LOG.debug("variable = {}", var);
参考资料
我刚刚查看了 source code of AndroidLoggerAdapter.java 代码 1.7.+ 现在在每个日志语句之前使用 if isLoggable(priority)
而 1.6.+ 只是在不询问的情况下记录。
android 默认功能
if (Log.isLoggable("MY_TAG", Log.VERBOSE))
总是 return false while
Log.v("MY_TAG", "Here's a log message")
仍然有效
这解释了为什么 org.slf4j:slf4j-android:1.7.14 不再工作。
也许这有助于应对新版本:Android logging levels
我正在使用 http://github.com/lp0/slf4j-android 另一种实现,它使用配置文件来 enable/disable 配置设置
http://jira.qos.ch/browse/SLF4J-314给了我答案。
要查看 "slf4j-android:1.7.x" 上的日志,使用 Android setprop 是官方方法。 这种方法的缺点是您必须 select TAG 但不能显示所有日志。例如在 logcat 中:
app_package D/TAG1: blabla
app_package D/TAG2: lorem ipsum
在终端中,输入
adb shell setprop log.tag.TAG1 VERBOSE
我只会显示 TAG1 而不会显示其他 TAG。我想知道是否可以打印所有其他标签。
现在,我想我会坚持使用 1.6.1-RC1 版本