【问题标题】:Log4j extending LoggerLog4j 扩展 Logger
【发布时间】:2012-12-18 02:37:17
【问题描述】:

我扩展了 Log4J Logger 类并创建了一个自定义 Logger 类来决定是否记录。

我的模式布局有 %F%M 参数来显示执行日志的类名和方法名。

问题在于,它没有显示异常调用者类和方法名,而是显示了我的自定义记录器的类和方法名!

我需要做什么才能显示正确的信息?

【问题讨论】:

    标签: java logging log4j


    【解决方案1】:

    您需要提供您的类作为forcedLog() 方法的完全限定类名。

    private static final String FQCN = MyCustomLogger.class.getName();
    
    ...
    
    public void info(Object message) {
        if(repository.isDisabled(Level.INFO_INT))
            return;
        if(Level.INFO.isGreaterOrEqual(this.getEffectiveLevel()))
            forcedLog(FQCN, Level.INFO, message, null);
    }
    
    ....
    

    我不确定您要过滤掉什么,但最好使用过滤器而不是扩展记录器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多