2011-02-01 24 views
7

log4jが持っているさまざまなアペンダーについて、ここで多くの質問を見ましたが、私が抱えている問題をカバーするものはありません。これがどこでも繰り返されている場合はお詫びCompositeRollingAppenderがファイルの名前を変更する方法を変更する

時間とサイズの両方に基づいてログファイルをロールする必要があるため、アプリでCompositeRollingAppenderを使用しています。宣伝としてこれは正確に動作します、しかし、我々のようなファイルで終わる:

myapp.log 
myapp.log.2010-12-11 
myapp.log.2010-12-11.1 
myapp.log.2010-12-12 

それはlog4jのファイルの名前を変更する方法の形式を変更することは可能ですか?私は逃したどこかで逃げようとしているものがなければならないと確信している。例えば、上記のような状況では、私は次のようなものが好きです:

myapp.log 
myapp-2010-12-11.log 
myapp-2010-12-11.1.log 
myapp-2010-12-12.log 

ここでのポイントは拡張子がまだありません.logどうして尋ねられますか?私たちのアプリの管理者は、ファイルをダブルクリックするだけでファイルを開くことができないと訴えているので、私は知っています。彼らがすべて.log拡張子を持っている場合、これは当てはまりません。

ありがとうございます。

+0

これは厄介ですが、日付パターンに '.log'リテラルを含めることができます。もちろん、あなたのファイルは 'myapp.log-2010-12-11.log'のように見えますが、少なくともダブルクリックすると開くことができます。 – biziclop

+0

はい - 私はそうすることができます。私はこれが単に私が行方不明だったいくつかの不動産の変更であることを望んでいた。私はもちろん、基本アペンダーを拡張して、必要なものを行うことができます。 –

答えて

0

CompositeRollingAppenderを使用することができると思います。追加する適切なログファイルがすでに存在するかどうか(起動時に)決定する方法はかなり制限されています。設定された静的な名前の末尾には、タックの日付と番号のみがサポートされています。

log4jエクストラCompositeTriggeringPolicyを使用できますが、RollingPolicyには日付とウィンドウの両方が含まれているとは限りません。

あなたの管理者のための選択はあなたが

<param name="FileNamePattern" value="MyApp.%d{yyyy-MM-W}.log" /> 

または名前を変更するために、現在の名前と一緒に暮らすか、cronジョブを実行するとTimeBasedRollingPolicyRollingFileAppenderを使用できるように、ファイルのサイズ制限を見送ることですファイルの名前を変更することはできませんが、翌日までファイルの名前を変更することはできません(そうしないとファイル名の衝突が発生します)。

0

私はあなたが欲しい機能をサポートしていない

<param name="FileNamePattern" value="C:\\logs\\MyApp.%d{yyyy-MM-dd}.log" /> 
関連する問題