用于登录文件的Android最佳记录器

Las*_*zlo 5 logging android noclassdeffounderror slf4j

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

我尝试使用SLF4J-android,但我得到了一个例外

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

这是我的代码:

public class Main extends TabActivity {
    private static final Logger log = LoggerFactory.getLogger(Main.class); 
Run Code Online (Sandbox Code Playgroud)

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

会有什么问题?

ton*_*y19 17

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

说明:

  1. 添加slf4j-api-<version>.jarlogback-android-<version>.jar到类路径.

  2. assets/logback.xml在项目中创建文件(或使用AndroidManifest.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>
</configuration>
Run Code Online (Sandbox Code Playgroud)

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

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


Fus*_*dor 2

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