Javaプロジェクトをlog4j1.2を使用してロギングすることからlog4j2を使用することへの移行に取り組んでいます。
log4j 1.xにはクラスがあります org.Apache.log4j.DailyRollingFileAppender
これは私のプロジェクトのlog4j.properties構成ファイルに記載されています。同じ名前DailyRollingFileAppender
のクラスはlog4j2に存在しなくなりました。DailyRollingFileAppender
の役割を他のクラスまたはlog4j2の置換構成または実装に置き換えることができるかどうか疑問に思います。
移行ガイドでは、アプリケーションをlog4j 2に移行するには、Appender
sなどのlog4j1.xの内部のメソッドやクラスにアクセスしてはならないことを強調しています。しかし、移行を行うには、DailyRollingFileAppender
に何ができるでしょうか。それをいくつかのカスタム構成、またはlog4j 2のクラスの組み合わせに置き換えることは可能ですか? 移行ガイドのいくつかの構成例 、特にFileAppender
の構成例がありますが、DailyRollingFileAppender
はどうですか?これは、基本的なFileAppender
にかなり近いものです。
log4j 1.2 API Javadoc から、クラスorg.Apache.log4j.DailyRollingFileAppender
DailyRollingFileAppenderはFileAppenderを拡張して、基になるファイルがユーザーが選択した頻度でロールオーバーされるようにします。 DailyRollingFileAppenderは、同期の問題とデータの損失を示すことが確認されています。 log4jエクストラコンパニオンには、新しいデプロイメントで検討する必要があり、org.Apache.log4j.rolling.RollingFileAppenderのドキュメントで説明されている代替案が含まれています。
RollingFileアペンダーを探しています
<RollingFile name="DAILY_LOG" fileName="log/daily.log"
filePattern="log/%d{ddMMyyyy}_daily.log"
>
<PatternLayout pattern="%d [%7r] %5p - %c - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1"/>
</Policies>
</RollingFile>
前のサンプルは日ごとにロールオーバーします。間隔は1単位で、ファイルパターンの日付ルックアップの最小単位によって決定されます。つまり、日付パターンがd{MMyyyy}
の場合、interval = 1は1か月のロールオーバー期間に対応します。
現在、特定の日付や経過時間などを過ぎて保持されるログファイルの数を制限することはサポートされていないことに注意してください。期間ごとのログファイルの数のみを制限できます。