【发布时间】:2012-12-18 02:37:17
【问题描述】:
我扩展了 Log4J Logger 类并创建了一个自定义 Logger 类来决定是否记录。
我的模式布局有 %F 和 %M 参数来显示执行日志的类名和方法名。
问题在于,它没有显示异常调用者类和方法名,而是显示了我的自定义记录器的类和方法名!
我需要做什么才能显示正确的信息?
【问题讨论】:
我扩展了 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);
}
....
我不确定您要过滤掉什么,但最好使用过滤器而不是扩展记录器。
【讨论】: