我是 android 开发的新手。我想将日志写入 SD 卡中的一个文件。我如何使用 Log4j 执行此操作。实现 Log4j 的所有步骤是什么。我阅读了很多文章。但没有一个描述如何配置和实现它。任何人都可以用简单的语言解释如何在 android 中执行此操作。
最佳答案
你应该看看logback
(下一代 log4j)。使用 FileAppender
或 RollingFileAppender
.
说明:
将
slf4j-api-1.6.6.jar
和logback-android-1.0.6-2.jar
添加到您的类路径。在您的项目中创建文件
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/