プロジェクトのロギングを改善するために log4j 2 を試しています。毎日ログ ファイルを作成する RollingFile アペンダーを使用しています。
<Configuration status="DEBUG">
<Properties>
<Property name="log-path">D:/logs/</Property>
</Properties>
<Appenders>
<RollingFile name="RollingFile" fileName="${log-path}/daily.log"
filePattern="${log-path}/daily_%d{yyyy-MM-dd}.log" >
<PatternLayout>
<pattern>%-5level: %d{HH:mm:ss,SSS} - %c{1}::%M - [%X{username}] %m [%r]%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1"/>
</Policies>
</RollingFile>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%-5level: %d{HH:mm:ss,SSS} - %c{1}::%M - [%X{username}] %m [%r]%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="root" level="debug" additivity="false">
<appender-ref ref="RollingFile" level="debug"/>
</Logger>
<!-- Change logging level below. Accepted values: error, warning, info, debug, trace -->
<Root level="debug" additivity="false">
<AppenderRef ref="RollingFile"/>
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
</Configuration>
%r パターンについて質問があります。これは、レイアウトの構築からロギング イベントの作成までに経過したミリ秒数を表す必要があります。
これを実行しているときに、ミリ秒が高くなりすぎて、数が増えているだけであることに気付きました。これは、Java アプリケーション サーバー (私の場合は Payara 4.1) によるスレッドの再利用に関係しています。
リクエスト自体のミリ秒を取得できるように、これを回避する方法はありますか?