アイデアは、再デプロイせずにログバック構成を変更できるようにすることです。プロジェクトでは Slf4j と logback を使用しています。logback.xml ファイルは耳の中にありますが、耳の外側に配置されたプロパティ ファイルからいくつかのプロパティを読み取ります。そんな感じ:
<configuration scan="true" scanPeriod="5 seconds">
<property file="${logconfig}"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${logback.consolePattern}</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>
</configuration>
問題は、logback.xml が変更されたかどうか (およびファイルが常に同じかどうか) をスキャンがチェックすることです。そのため、プロパティ ファイルの値を変更しても logback の構成は変更されません。変更は、再デプロイ後にのみ適用されます。
では、再デプロイせずにログバック構成を変更できるようにするための最良の方法は何ですか? それを実現できるメカニズムはありますか?
upd: 変更はめったに行われません。しかし、それらはできるだけ早く適用する必要があります。パフォーマンスも重要です。