【问题标题】:Android log4j Logging Multiple timesAndroid log4j 多次记录
【发布时间】:2015-09-14 06:38:00
【问题描述】:

大家好,这里使用 Log4j 时遇到了问题。

我的代码是

public class MyLogger{
    private static Logger mLogger = LoggerFactory.getLogger(MyLogger.class);

    public static void configure() {
        LogConfigurator logConfigurator = new LogConfigurator();
        logConfigurator.setFileName(getLogPath());
        logConfigurator.setRootLevel(Level.DEBUG);
        logConfigurator.setLevel("com.**", Level.ALL);
        logConfigurator.setMaxFileSize(1024 * 1024 * 5);
        logConfigurator.configure();
    }

    public static void info(String msg) {
        mLogger.info(msg);
    }

    public static void warn(String msg) {
        mLogger.warn(msg);
    }

    public static void debug(String msg) {
        mLogger.debug(msg);
    }

    public static void error(String msg) {
        mLogger.error(msg);
    }

此代码有效,但我注意到它被记录了多次。我尝试在这里阅读一些教程,他们说我需要添加 additivity="false" 但该功能在 Jar 文件中不可用。

【问题讨论】:

  • Logger 类具有派生自CategorysetAdditivity。你试过了吗?
  • @Fildor 你所说的类别是什么意思?到目前为止,我所做的是添加 jar 文件并创建该类。我需要创建一个类别吗?
  • 不,CategoryLogger 类的已弃用前身。它继承setAdditivity 方法。因此,如果您以编程方式配置记录器,您应该能够使用mLogger.setAdditivity(false) 设置此属性。不过,不确定是否必须在第一次登录之前完成。

标签: java android logging


【解决方案1】:

为给定记录器启用的每个日志记录请求都将转发到该记录器中的所有附加程序,以及层次结构中更高的附加程序。

检查 log4j.properties 并进行更改以将其设置为 false :

log4j.additivity.com.javacodegeeks.examples.log4jadditivity.theClass=false

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    相关资源
    最近更新 更多