如何在android中使用SLF4j获取日志文件

Sur*_*rma 6 java logging android logback slf4j

我已经在android中使用slf4j实现了用于创建日志文件的代码,但没有成功。

首先,我按照以下添加了 gradle 依赖项:-

compile 'org.slf4j:slf4j-android:1.6.1-RC1'
compile 'com.github.tony19:logback-android-core:1.0.7-1'
Run Code Online (Sandbox Code Playgroud)

然后按照指南,我在资产文件夹中创建了一个配置文件,命名logback.xml如下:-

<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>/sdcard/testFile.log</file>
    <append>true</append>
    <encoder>
        <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
    </encoder>
</appender>

<root level="DEBUG">
    <appender-ref ref="FILE" />
</root>
Run Code Online (Sandbox Code Playgroud)

最后,我在我的应用程序中添加了一个日志,如下所示:-

Logger logger = LoggerFactory.getLogger(HomeActivity.class);
logger.debug("Testing slf4j", "Hello world");
Run Code Online (Sandbox Code Playgroud)

现在我运行了这个程序并期待 SDcard 中有一个日志文件,但不幸的是没有看到这样的文件。如果我遗漏了什么,请告诉我。如果有人在android应用程序中做到了,请帮助我。

谢谢。

ton*_*y19 7

logback-android需要slf4j-api. slf4j-android不应使用,因为这是一个独立库,仅将日志重定向到 logcat 并且不处理logback.xml.

logback-androidGitHub 页面来看,正确的依赖项是:

dependencies {
  implementation 'org.slf4j:slf4j-api:1.7.25'
  implementation 'com.github.tony19:logback-android:2.0.0'
}
Run Code Online (Sandbox Code Playgroud)