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

标签 java android logging slf4j logback

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

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

compile 'org.slf4j:slf4j-android:1.6.1-RC1'
compile 'com.github.tony19:logback-android-core:1.0.7-1'

然后根据指南,我在 Assets 文件夹中创建了一个名为 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>

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

Logger logger = LoggerFactory.getLogger(HomeActivity.class);
logger.debug("Testing slf4j", "Hello world");

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

谢谢。

最佳答案

logback-android 需要 slf4j-api。不应使用 slf4j-android,因为它是一个独立的库,只会将日志重定向到 logcat 而不会处理 logback.xml

来自 logback-androidGitHub page ,正确的依赖关系是:

dependencies {
  implementation 'org.slf4j:slf4j-api:1.7.25'
  implementation 'com.github.tony19:logback-android:2.0.0'
}

关于java - 如何在android中使用SLF4j获取日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35883132/

相关文章:

Java:类似于 Java 中的 ord PHP 的方法

java - apk 文件中的 jsr305_annotations 文件夹

java - 如何使用 PhantomReference 报告 Android/Java 中的内存泄漏

android - 控制复选框状态

使用 CaSTLe.Facilities.Logging 和 log4net 进行日志记录

java - opencsv CSV 阅读器 - 从特定行开始读取。

java - GlassFish JDBC 领域组成员资格

java - 如何减少 GC CPU 使用率的峰值

java - 如何指定 Log4J 2.x 配置位置?

logging - 如何在 Sonar 代码覆盖分析中忽略代码块?