2012-06-04 124 views
0

我只收到一個日誌文件,過去的日誌被刪除。 我想將過去的日誌文件作爲備份。 它不應取代舊內容,而應將舊文件保存在單獨的文件中。 以下是我log4j.properties文件如何在日誌文件中獲取舊的日誌細節?

# Log4j configuration file. 
log4j.rootCategory=DEBUG, A1 
# Available levels are DEBUG, INFO, WARN, ERROR, FATAL 

# 
# A1 is a ConsoleAppender 
# 

log4j.appender.A1 = org.apache.log4j.RollingFileAppender 
log4j.appender.A1.File = C:/LogInfo/logfile.log 
log4j.appender.A1.MaxFileSize = 100MB 
log4j.appender.A1.MaxBackupIndex=10 
log4j.appender.A1.layout = org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern = [%d] %C %M %L - %m%n 
log4j.appender.A1.Threshold = DEBUG 

# 
# A2 is a DailyRollingFileAppender 
# 
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.A2.file=C:/LogInfo/logfile.log 
log4j.appender.A2.datePattern='.'yyyy-MM-dd 
log4j.appender.A2.append=true 
log4j.appender.A2.layout=org.apache.log4j.PatternLayout 
log4j.appender.A2.layout.ConversionPattern=[%d] %C %M %L - %m%n 

# 
# 
# A3 is a RollingFileAppender - Should be used in production only 
# 
log4j.appender.A3=org.apache.log4j.RollingFileAppender 
log4j.appender.A3.file=C:/LogInfo/logfile.log 
log4j.appender.A3.append=true 
log4j.appender.A3.MaxBackupIndex=5 
log4j.appender.A3.MaxFileSize=10MB 
log4j.appender.A3.layout=org.apache.log4j.PatternLayout 
log4j.appender.A3.layout.ConversionPattern=[%d] %C %M %L - %m%n 
+0

您面臨的問題是什麼。該配置將保留文件的備份。當您重新運行或重新部署您的程序時,您的文件可能會被刪除。 – sudmong

+0

我只得到一個文件是當前文件..沒有其他文件 – Edward

+0

這些將在當前滿時創建。例如根據log4j.appender.A1.MaxFileSize或FileAppender類型在10 mb之後或一天之後。 – sudmong

回答

0

取決於其追加程序使用的是 - 看起來大概A2或A3。 在這種情況下,您需要增加MaxBackupIndex的值 - 對於A3,它被設置爲5,這意味着最多可以保留5個備份文件。對於A2這個屬性沒有定義,所以它將使用默認值1,它保持最多1個備份文件。

您應該將它們設置爲更高的值 - 比如1000,這樣可以保持最多1000個備份文件,每個備份文件的最大大小爲10MB(定義爲A3)。

log4j.appender.A2.MaxBackupIndex=1000 
log4j.appender.A3.MaxBackupIndex=1000 

編輯:對不起,dint閱讀第一行。看起來你正在使用A1 appender,它會保持每個100MB的10個文件。您可以增加這些值以保留更舊的日誌。

+0

我已incraesed文件大小爲2000mb。它將日誌寫入2000mb,然後文件成爲0kb,它開始witing。它創建2000mb後新的文件。我沒有得到文件的備份。 – Edward

+0

也試一下log4j.appender.A1.append = true – kjp