Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android中的LOG4J_Java_Android_Logging_Log4j_Slf4j - Fatal编程技术网

Java 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

我有一个包含很多文件的Java项目,它使用LOG4J。现在我正在尝试将它移植到Android平台。是否可以通过LOG4J函数调用重用代码

目前的理解:

  • 属性配置不起作用(bean依赖项)
  • 我尝试了Android的LOG4J和SL4J库。没有成功
  • 工作。但是没有用

    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);