我扩展了Log4J Logger类并创建了一个自定义Logger类,用于决定是否记录。
我的模式布局包含%F
和%M
参数,用于显示执行日志的类名和方法名称。
问题是,它不是显示异常调用者类和方法名,而是显示我的自定义记录器的类和方法名称!
我需要做些什么才能显示正确的信息?
答案 0 :(得分: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);
}
....
我不确定您要尝试过滤掉什么,但使用过滤器而不是扩展记录器可能会更好。