在我的项目中,我有一个顶级抽象类FrameProducer
。我在这个级别添加了一个 slf4j 记录器,以便每个继承类都已经拥有它。这里的代码:
public abstract class FrameProducer extends Observable {
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
protected BufferedImage frame;
public BufferedImage getFrame() {
return frame;
}
public void fireEvent() {
logger.debug("Firing event. Implementing class: {}", this.getClass());
setChanged();
notifyObservers();
}
}
还有两个继承类:CameraFrameGrabber
和GrayscaleFilter
. 然而,当方法fireEvent()
被调用CameraFrameGrabber
或GrayscaleFilter
消息被记录在FrameProducer
级别时。为了清楚起见,这里是日志:
FrameProducer.fireEvent - Firing event. Implementing class: class com.ofj.frameaccess.CameraFrameGrabber
FrameProducer.fireEvent - Firing event. Implementing class: class com.ofj.frameaccess.GrayscaleFilter
是否可以初始化记录器以FrameProducer
使所有内容都记录在我的类层次结构中最专业的级别?
谢谢你的帮助。
编辑:我的 log4j.properties 看起来像这样:
log4j.rootCategory=TRACE, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=DEBUG
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%C{1}.%M - %m%n