指定した最大サイズ (5MB など) までのファイルのみを書き込むように log4j を構成したいと考えています。ログ ファイルが 5MB に達すると、新しいファイルへの書き込みを開始します。あるファイルと次のファイルを区別するために、何らかの意味のあるタイムスタンプをログファイル名に入れたいと思います。
新しいファイルが書き込まれるときに、古いファイルの名前を変更したり操作したりする必要はありません(圧縮は恩恵ですが、必須ではありません)。
一定期間またはロールされたファイルの数の後に古いファイルの削除を開始することは絶対に望んでいません。
N MB のログファイルのタイムスタンプ付きチャンクは、私が想像できる絶対的に基本的な最小限の単純な戦略のようです。これは非常に基本的なものなので、すぐに使用できるものではないとは信じられませんが、これを行う方法を理解することができませんでした!
DailyRollingFileAppender
特に、私は、RollingFileAppender
または 'Extras' のすべての化身を試しRollingFileAppender
ました。これらはすべて、backupcount を超えると古いファイルを削除します。私はこれを望んでいません、私はすべてのログファイルが欲しいです!
TimeBasedRollingPolicy
from Extras は、最大ファイル サイズ オプションがなく、セカンダリを関連付けることができないため適合しませんSizeBasedTriggeringPolicy
(既に実装されているためTriggeringPolicy
)。
すぐに使用できるソリューションはありますか? できれば Maven Central にあるソリューションですか?