ログファイルのタイムスタンプを生成するのlog4j拡張パックRollingFileAppenderを使用します
ブログカテゴリー: Javaの
ファイルを結果としてDailyRollingFileAppenderは、タイムスタンプではありません、ある時点の後に、私の息子は、ファイルスタンプの名前を変更しなければならなかったしなければなりません。
例では、時間に正確なタイムスタンプ、フォーマット.yyyy-MM-DD-HHは、2011-05-05現在時刻が5:00であり、その後のためのログの
ログ
時間後には6:00(6:00およびログへのアクセス権を持っている)となる、ログするために
ログインする
log.2011-05-05-05
一定の時間がアクセスをログに記録しない場合、log4jのイベントがトリガされたので、でも時間のポイントに、それは名前を変更するには、タイムスタンプを追加しません。たとえば、2日後に、ログへのアクセスを持ってのみ、このファイルをlog.2011-05-05-05作り出します。これは、ログの統計情報は、統計情報は、この文書が表示されない原因となります。
解決策は、それがすでに刻印されたときにログファイルを生成することです。このようなログがすでにlog.2011-05-05-05で5時、など。オリジナルのlog4jがこの機能を実装していない、あなたは自分のアペンダFileAppender連続を実装する必要があります。私はあなたがそのコンストラクタやロールオーバーを変更し、DailyRollingFileAppenderを参照することができ、ソースコードを見ました。私は成功することができないかわからない、実験に行きませんでした。
apacheの-のlog4j-エキストラのlog4jは、この要件のTimeBasedRollingPolicyを達成することができ、パッケージを、拡張されます。
必要なパッケージ:
log4jの-1.2.15.jar
のApache-のlog4j-エクストラ-1.0.jar
注:log4jの1.2.15は14以上でなければならないではない
のプロパティプロファイルが使用できないlog4jは、XMLを使用する必要があります。コンフィギュレーション、以下を参照してください。
- <?xml version = "1.0" エンコード= "UTF-8"?>
- <!DOCTYPEのlog4jの:設定SYSTEM "log4j.dtd">
- <log4jの:設定のxmlns:log4jの= ' http://jakarta.apache.org/log4j/ '>
- <! - アペンダ - >
- <! - STDOUT - >
- <アペンダ名= "STDOUT" クラス= "org.apache.log4j.ConsoleAppender">
- <レイアウトクラス= "org.apache.log4j.PatternLayout">
- <PARAM名= "ConversionPattern" 値= "%D%以下のP [%のC] - %のm個%のN" />
- </レイアウト>
- </アペンダ>
- <! - FILE - >
- <アペンダ名= "FILE"
- クラス= "org.apache.log4j.rolling.RollingFileAppender">
- <rollingPolicy
- クラス= "org.apache.log4j.rolling.TimeBasedRollingPolicy">
- ます。<param name = "FileNamePattern"
- 値= "D:/logs/file.%d {YYYY-MM-DD-HH}" />
- </ rollingPolicy>
- <レイアウトクラス= "org.apache.log4j.PatternLayout">
- ます。<param name = "ConversionPattern"
- 値= "%mの%N" />
- </レイアウト>
- </アペンダ>
- <ロガー名=「ビュー」>
- <レベル値= "情報" />
- <アペンダ-REF REF = "FILE" />
- </ロガー>
- <ルート>
- <レベル値= "情報" />
- <アペンダ-REF REF = "STDOUT" />
- </ルート>
- </ log4jの:設定>
注意:org.apache.log4j.rolling.RollingFileAppenderではなく、元のorg.apache.log4j.RollingFileAppenderのよりも、パッケージの下に転がりれる
テストケース:
- パブリック静的無効メイン(文字列[] args){
- ロガーロガー= Logger.getLogger(「ビュー」)。
- logger.info( "試験")。
- }
参照TimeBasedRollingPolicyの使用:
http://logging.apache.org/log4j/companions/extras/apidocs/org/apache/log4j/rolling/TimeBasedRollingPolicy.html