我想将apk的所有运行时信息和错误日志存储在sdcard文件夹new File(Environment.getExternalStorageDirectory(), /myapk/logs/myapk_date.log)
中。我如何实现这一目标?
额外信息 - 我的应用程序将安装在启动时启动的插件PC中,占据全屏并播放从服务器发送的某些内容。这将是任何用户将看到的唯一应用程序,因为没有用户交互。 apk会通过EOD将日志上传到服务器。
答案 0 :(得分:1)
http://mvnrepository.com/artifact/de.mindpipe.android/android-logging-log4j
使用此jar文件
以下是示例代码:
public class ALogger {
public static org.apache.log4j.Logger getLogger(Class clazz) {
final LogConfigurator logConfigurator = new LogConfigurator();
logConfigurator.setFileName(Environment.getExternalStorageDirectory().toString() + File.separator + "log/file.log");
logConfigurator.setRootLevel(Level.ALL);
logConfigurator.setLevel("org.apache", Level.ALL);
logConfigurator.setUseFileAppender(true);
logConfigurator.setFilePattern("%d %-5p [%c{2}]-[%L] %m%n");
logConfigurator.setMaxFileSize(1024 * 1024 * 5);
logConfigurator.setImmediateFlush(true);
logConfigurator.configure();
Logger log = Logger.getLogger(clazz);
return log;
}
}
在您的代码中,替换以下行:
PropertyConfigurator.configure(MY_PROP_FILE);
logger = Logger.getLogger( MyClaZZ.class );
With:
logger = ALogger.getLogger(MyClazz.class);
参考:在android中使用Log4j