2017-08-29 5 views
0

私はプロジェクトを実行すると、MyLogFile.logファイルを作成します。なぜlog4jはファイル名を変更しますか?

次の日私はプロジェクトを実行し、log4jはMyLogFileの名前を MyLogFile.log_Yesterday.logに変更し、新しいMyLogFileファイルを作成してこのファイルの書き込みを開始します。

なぜMyLogFile.log_ToDay.logファイルが開かれませんか? fileNameの名前を変更するのはなぜですか?事前に 感謝

log4j.rootLogger=DEBUG, stdout 
log4j.rootLogger=DEBUG, RollingAppender 
log4j.appender.RollingAppender=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.RollingAppender.File=d:/Logs/MyLogFile.log 
log4j.appender.RollingAppender.DatePattern='_'yyyy-MM-dd'.log' 
log4j.appender.RollingAppender.layout=org.apache.log4j.PatternLayout 
log4j.appender.RollingAppender.layout.ConversionPattern=[%p] %d %c %M - %m%n 
+0

log4j.appender.RollingAppender = org.apache.log4j.DailyRollingFileAppenderのため、DailyRollingAppender? – yashpandey

+0

私は毎日ログファイルをクレーテしたいです。 しかし、たとえば今日では、MylogFile.log_today.logファイルは書き込まれません。 MyLogFileに書き出し、翌日に名前を変更します。 –

+0

https://stackoverflow.com/questions/192456/setting-a-log-file-name-to-include-current-date-in-log4j – yashpandey

答えて

1

使用されているアペンダはいつでも日付が変わる現在のログ・ファイルのバックアップをとるorg.apache.log4j.DailyRolling‌​FileAppenderです。

2017-08-29ログファイルは、名前がMyLogFile.logで作成され、ログが書き込まれます。

2017年8月30日コードが記録されることを何かに遭遇するたびに、アペンダはMyLogFile_2017-08-29.logに前日に作成されたファイルの名前を変更し、現在の日の新鮮なMyLogFile.logを作成します。

詳細については、Javadoc for DailyRollingFileAppenderを参照してください。

+0

どうすればいいですか?毎日log4fで毎日ファイルを作成し、そのファイルに書き込みますか? –

+0

何もする必要はありません。 'log4j'は毎日のロールオーバーを処理します。ファイルを毎日ロールオーバーさせたくない場合は、appenderを 'RollingFileAppender'に変更し、ロールオーバーのために別のポリシーを使用することができます。指定されたファイルサイズに達するまで、同じファイルにログインし続ける 'MaxFileSize'プロパティがあります。詳細は、 'log4j'のドキュメントを参照してください。 –

+0

RollingFileAppenderでこの問題を解決できませんか? –

関連する問題