0

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

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

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

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

4

1 回答 1

0

您需要提供您的类作为该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);
}

....

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

于 2013-01-04T00:12:57.047 回答