同じ JVM および Tomcat インスタンスで実行されている 2 つのコンテキストがあり、ログバック RollingFileAppender を使用して同じログ ファイルに書き込みたいと考えています。ログバック RollingFileAppender は、同じファイルを使用した場合に問題を防ぐために同期されていますか? ファイルのロールオーバーが正しく機能せず、一部のログが上書きされるのではないかと心配しています。
ログバックのドキュメントでは慎重なモードについて言及されていますが、これはパフォーマンスの低下を示しており、異なる JVM からの同じファイルへのロギングのみを参照しています。同じ JVM で実行します。
これが私の logback.xml の例です。これを、コンテキストごとに 2 つの個別の WAR ファイルに入れたいと思います。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${catalina.base}/logs/portal.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>portal.%d.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d [%t] %-5p %c - %m%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="FILE" />
</root>
</configuration>