JTableAppender
を実装するカスタムアペンダーを書きましたILoggingEvent
。setModel(..)
このアペンダーには、テーブル モデルをアペンダーに割り当てるためのパブリック セッターがあるため、 でモデルを操作できdoAppend()
ます。
JTableAppender は xml ファイルで構成され、TABLE と名付けました。
<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>
外部からセッターを使用できるようにするために、アペンダーを使用して取得しようとしました
Logger logger = (Logger) LoggerFactory.getLogger("blabal");
JTableAppender<ILoggingEvent> appender = (JTableAppender<ILoggingEvent>)logger.getAppender("TABLE");
を使用してモデルを設定しようとしたとき
appender.setModel(...);
まさにこの行に対して NullPointerException が発生しました。getAppender() は、私が望むようには機能しませんでした。