5

什么是在 Android 系统中完美用于将文本记录到文件中的最佳记录器框架?

我尝试使用 SLF4J-android 但出现异常

04-29 12:58:57.604: E/AndroidRuntime(372): java.lang.NoClassDefFoundError: org.slf4j.LoggerFactory

这是我的代码:

public class Main extends TabActivity {
    private static final Logger log = LoggerFactory.getLogger(Main.class); 

我将 slf4j-android-1.6.1-RC1.jar 添加到构建路径中

会有什么问题?

4

2 回答 2

17

slf4j-android仅支持日志记录logcat,因此省略了常规 SLF4J jar 中的几个类。如果要使用 logback 记录到文件,则需要API jar(不是slf4j-android)和logback-android. 您正在寻找FileAppenderor RollingFileAppender

指示:

  1. slf4j-api-<version>.jar将和添加logback-android-<version>.jar到您的类路径。

  2. 在您的项目中创建文件assets/logback.xml(或使用AndroidManifest.xml...see example),其中包含以下配置:

<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>
</configuration>

注意:由于指定路径在SD上,请务必使用WRITE_EXTERNAL_STORAGE权限。您可以改为指定您已经具有写入权限的其他路径。

您的 Java 代码(包含 SLF4J 日志记录调用)现在将级别或以上DEBUG级别的所有事件记录到/sdcard/testFile.log.

于 2012-08-12T07:14:25.000 回答
2

创建一个名为“libs”的文件夹并将 jar 放入该文件夹中。

于 2012-06-12T21:56:49.883 回答