web-dev-qa-db-ja.com

log4jプロパティDailyRollingFileAppenderが機能しない

ログファイルにyyyy-dd-mm形式の日付を追加した日次ログが必要です。 DailyRollingFileAppenderを使用すると、新しいログファイルが作成されません。ログは同じログファイルに書き込まれます。また、提供された日付パターンは考慮されません。作成されるログファイルはLoggerFile.logです。そして、すべてのコンテンツ(翌日であっても)がこのファイルに書き込まれます。

私はlog4j-1.2.17 jarを使用しています。私はJavaのNetbeans 7.3.1で開発しています。

このJARを使用していて、そのような問題に直面している人はいますか?助けてください!

使用するプロパティファイルの内容は次のとおりです。

# Root logger option
log4j.rootLogger=ERROR,FILE,stdout

# Define the file appender
log4j.appender.FILE=org.Apache.log4j.DailyRollingFileAppender

log4j.appender.FILE.File=.//..//logs//LoggerFile.log

# Define the layout for file appender
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd
log4j.appender.FILE.layout=org.Apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS zzz} %5p     %c{1}:%L - %m%n

log4j.appender.FILE.MaxFileSize=10MB


# Direct log messages to stdout
log4j.appender.stdout=org.Apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.Apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L -  %m%n`
14

毎日のログファイルローテーションについても同様の要件がありました。

キーポイント:

  1. まず第一に、我々はDailyRollingFileAppenderの使用を避けるができます。どうして? DailyRollingFileAppenderは、同期の問題とデータ損失を示すことが確認されています。 log4jエクストラコンパニオンには、新しいデプロイメントを検討する必要のある代替案が含まれており、org.Apache.log4j.rolling.RollingFileAppenderのドキュメントで説明されています。参照: 日次ローリングファイルアペンダーのドキュメント

  2. Apache extras log4j、 org.Apache.log4j.rolling.RollingFileAppender時間ベースのローリングポリシー とともに使用することをお勧めします

  3. ログの時間ベースのローテーションの sample 構成を見つけることができます。

お役に立てれば。

まず、DailyRollingFileAppenderがプロパティMaxFileSizeをサポートしていないため、エラーが発生します。

次に、DatePatternから文字'を削除してみます。

変更してみてください

log4j.appender.FILE.DatePattern='.'yyyy-MM-dd

log4j.appender.FILE.DatePattern=.yyyy-MM-dd
3
Suci