1

JTableAppenderを実装するカスタムアペンダーを書きましたILoggingEventsetModel(..)このアペンダーには、テーブル モデルをアペンダーに割り当てるためのパブリック セッターがあるため、 でモデルを操作でき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() は、私が望むようには機能しませんでした。

4

2 に答える 2