Android中的LOG4J

我有很多文件,这是使用LOG4J的Java项目。 现在我正试图将其移植到Android平台。 是否有可能重新使用代码,与LOG4J函数调用?

目前的了解:

  1. 属性configuration将不起作用(bean依赖)
  2. 我试着用Android和SL4J Lib的LOG4J。 没有成功。

加工。 但没用

org.apache.log4j.Logger root = org.apache.log4j.Logger.getRootLogger(); final SocketAppender appender = new SocketAppender("192.168.123.123", 3333); root.addAppender(appender); // SLF4J - Not working org.slf4j.Logger logger; logger = LoggerFactory.getLogger(MyClass.class); // LOG4J for Android - Not working ConfigureLog4J.configure(); logger = Logger.getLogger( MyClass.class ); 

我错过了什么? 指向任何工作的例子?

Solutions Collecting From Web of "Android中的LOG4J"

通过使用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; } } 

在你的代码中,replace下面的代码:

 PropertyConfigurator.configure(MY_PROP_FILE); logger = Logger.getLogger( MyClaZZ.class ); 

附:

 logger = ALogger.getLogger(MyClazz.class); 

我的回答,提出了一个更加面向未来和侧面思考的方法;-)。

我自己使用了android-logging-log4j了一段时间,但是在dexing的时候,它引起了大量的警告(实际上看起来像是错误)。

log4j jar里面也有很多不必要的东西,比如Chainsaw日志UI(用Swing写的,在Android上没用)。

我已经通过https://github.com/tony19/logback-android切换到了logback 。 到目前为止,我很高兴。 build设时不再有大量的垃圾邮件。

另外,看起来像log4j 1.x不是开发了,看看https://github.com/apache/log4j/tree/trunk – 最后提交多年前。

而logback似乎是继任者。