android - Android 中的 Log4j 实现

标签 android logging log4j android-logcat

我是 android 开发的新手。我想将日志写入 SD 卡中的一个文件。我如何使用 Log4j 执行此操作。实现 Log4j 的所有步骤是什么。我阅读了很多文章。但没有一个描述如何配置和实现它。任何人都可以用简单的语言解释如何在 android 中执行此操作。

最佳答案

你应该看看logback (下一代 log4j)。使用 FileAppenderRollingFileAppender .

说明:

  1. slf4j-api-1.6.6.jarlogback-android-1.0.6-2.jar 添加到您的类路径。

  2. 在您的项目中创建文件 assets/logback.xml(或使用 AndroidManifest.xml...请参阅 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

示例 Java:

package com.example;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.example.R;
import android.app.Activity;
import android.os.Bundle;

public class HelloAndroidActivity extends Activity {
    static private final Logger LOG =
                       LoggerFactory.getLogger(HelloAndroidActivity.class);

    @Override
    public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       
       //
       // Based on the configuration above, these log statements
       // are written to /sdcard/testFile.log
       //
       LOG.info("Hello Android!");
       LOG.debug("reply: {}", Example.hello());
    }
}

class Example {
    static private final Logger LOG =
                     LoggerFactory.getLogger(Example.class);

    static public String hello() {
        LOG.trace("entered hello()");
        return "Hi there!";
    }
}

关于android - Android 中的 Log4j 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11826025/

相关文章:

android - 在 Activity 中访问小部件时出现 NullPointerException

android - 升级到 Android Studio 3.4,现在无法运行我的应用程序

java - 动态更改 Log4j 文件名

.net - SQL Server 停止加载程序集

java - Tomcat 上使用 Log4j2 的 Access.log 作为 JSON

logging - 集成测试期间的 Grails 日志记录

java - 未创建 slf4j/log4j 日志文件

Android Room - 如何添加类型转换器

android - 想对我的应用程序进行卸载 :android

log4j - 无法启动Spring Boot服务器