我寫了一個自定義的appender JTableAppender
,它實現了ILoggingEvent
。這個appender有一個公開的setter方法setModel(..)
爲appender分配一個表模型,所以我可以在doAppend()
中操縱模型。在Logback中使用getAppender()
的JTableAppender在一個XML文件,在那裏我將它命名爲表可配置:
<appender name="TABLE" class="blabla.jgwf.test.logger.JTableAppender">
<!-- encoders are by default assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
爲了能夠從外部使用的setter方法中,我試圖讓使用附加器
Logger logger = (Logger) LoggerFactory.getLogger("blabal");
JTableAppender<ILoggingEvent> appender = (JTableAppender<ILoggingEvent>)logger.getAppender("TABLE");
當我試圖設置使用
appender.setModel(...);
我得到exactl一個NullPointerException模型這條線。 getAppender()並不如我所願。
要將哪個記錄器附加到appender?您應該在該記錄器上調用getAppender。 – Ceki 2012-07-13 19:37:08
告訴我你的記錄器的設置。看起來你沒有添加Appender到你的記錄器,所以'logger.getAppender(「TABLE」)'返回'null'。 – Simulant 2012-07-16 12:03:46
好的謝謝你們的提示。我忘了在配置文件中提到appender。 – 2012-07-19 08:34:47