2017-08-29 157 views
0

我使用下面的代碼。當我運行項目時創建MyLogFile.log文件。爲什麼log4j重命名文件名?

第二天我運行項目和log4j將MyLogFile重命名爲 MyLogFile.log_Yesterday.log並創建新的MyLogFile文件並開始編寫該文件。

爲什麼它不包裝MyLogFile.log_ToDay.log文件? 爲什麼它重命名文件名? 預先感謝

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解決此問題嗎? –