我扩展了 Log4J Logger 类并创建了一个自定义 Logger 类来决定是否记录。
我的模式布局有%F
和%M
参数来显示执行日志的类名和方法名。
问题是它没有显示异常调用者类和方法名,而是显示了我的自定义记录器的类和方法名!
我需要做什么才能显示正确的信息?
您需要提供您的类作为该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);
}
....
我不确定您要过滤掉什么,但最好使用过滤器而不是扩展记录器。