Java Android中的LOG4J
我有一个包含很多文件的Java项目,它使用LOG4J。现在我正在尝试将它移植到Android平台。是否可以通过LOG4J函数调用重用代码 目前的理解:Java Android中的LOG4J,java,android,logging,log4j,slf4j,Java,Android,Logging,Log4j,Slf4j,我有一个包含很多文件的Java项目,它使用LOG4J。现在我正在尝试将它移植到Android平台。是否可以通过LOG4J函数调用重用代码 目前的理解: 属性配置不起作用(bean依赖项) 我尝试了Android的LOG4J和SL4J库。没有成功 工作。但是没有用 org.apache.log4j.Logger root = org.apache.log4j.Logger.getRootLogger(); final SocketAppender appender = new SocketAppe
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 );
我错过什么了吗?指向任何工作示例的指针?使用
以下是示例代码:
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 );
与:
我的回答是,这提供了一种更加经得起未来考验的横向思考方法;-) 我自己使用android-logging-log4j已经有一段时间了,但在进行索引时,它会引起大量警告(实际上看起来像是错误) log4jjar中还有很多不必要的东西,比如链锯日志UI(用Swing编写,因此在Android上没有用处) 我已通过切换到logback。 到目前为止我很高兴。 在构建时不再有大量垃圾邮件 另外,看起来log4j1.x不再被开发了,看看很多年前的最后一次提交
logback似乎是后继者。log4 android到底有什么问题?你有堆栈跟踪吗?你可以用gradle代替jar文件。您可以在应用程序的
app.gradle
的依赖项部分添加两行compile'de.mindpipe.android:android-logging-log4j:1.0.3'
和compile'log4j:log4j:1.2.17'
。
logger = ALogger.getLogger(MyClazz.class);