在我的項目我有一個頂層抽象類FrameProducer
。我在這個級別添加了一個slf4j記錄器,以便每個繼承類都擁有它。下面的代碼:如何初始化SLF4J(使用log4j的)記錄在適當的抽象類/繼承
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
它應該這樣做默認情況下。你的'log4j.properties'或'log4j.xml'文件是什麼樣的? – skaffman 2010-10-12 11:34:56