2009-10-01 58 views
2

我似乎沒有將任何INFO級別的消息放入Additions.log或Deletions.log中,即使我看到日誌行在調試器中被執行。這裏是我的log4j.properties文件:log4j:一個班級;同一水平;兩個輸出文件

log4j.file.home=. 

log4j.rootLogger=INFO, dest1 
log4j.rootCategory=INFO, dest1 
log4j.logger.org.hibernate=ERROR 

log4j.category.dest1=INFO 
log4j.appender.dest1=org.apache.log4j.ConsoleAppender 
log4j.appender.dest1.layout=org.apache.log4j.PatternLayout 
log4j.appender.dest1.layout.ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} %-8p %c [%t] - %m (%l)%n 

#Log items that are being added 
log4j.logger.Additions=INFO 
log4j.additivity.Additions=false 
log4j.appender.Additions=org.apache.log4j.RollingFileAppender 
log4j.appender.Additions.File=${log4j.file.home}/Additions.log 
log4j.appender.Additions.MaxFileSize=10000KB 
log4j.appender.Additions.MaxBackupIndex=10 
log4j.appender.Additions.layout=org.apache.log4j.PatternLayout 
log4j.appender.Additions.layout.ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} %-8p %c [%t] - %m (%l)%n 

#Log items that are being removed 
log4j.logger.Deletions=INFO 
log4j.additivity.Deletions=false 
log4j.appender.Deletions=org.apache.log4j.RollingFileAppender 
log4j.appender.Deletions.File=${log4j.file.home}/Deletions.log 
log4j.appender.Deletions.MaxFileSize=10000KB 
log4j.appender.Deletions.MaxBackupIndex=10 
log4j.appender.Deletions.layout=org.apache.log4j.PatternLayout 
log4j.appender.Deletions.layout.ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} %-8p %c [%t] - %m (%l)%n 

,這裏是從類讓我的記錄器:

private static Logger addLog = Logger.getLogger("Additions"); 
private static Logger deleteLog = Logger.getLogger("Deletions"); 

還有什麼我需要解決算出這個?

回答

6

你使記錄器和Appenders混淆。你已經定義了名爲Additions和Deletions的記錄器,並且你已經定義了Appenders具有相同的名稱,但是你需要關聯這兩個。簡單地給他們同樣的名字是不夠的。

我建議您將appenders重新命名爲與Loggers不同,以避免混淆。然後,您需要追加程序分配到這樣的記錄儀:

log4j.logger.Additions=INFO, Additions 
log4j.logger.Deletions=INFO, Deletions 

最後,我建議你考慮從屬性格式的XML文件格式發展。在我看來,這是一個更可讀的可讀性,並且很明顯,其他所有內容和結構都是什麼。

1

這相較於我自己的log4j的多文件寫入配置我推薦:

  1. 將您log4j.logger和log4j.additivity線,因此他們是log4j.appender語句後。
  2. 修改log4j.logger指定的appender,如「log4j.logger.Additions = INFO,添置」

它變得更清晰一點,當你的appender有從記錄器不同的名稱。這裏是我的一部分:

log4j.appender.ChatLogs=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.ChatLogs.layout=org.apache.log4j.PatternLayout 
log4j.appender.ChatLogs.layout.ConversionPattern=%d{yyyy-MMM-dd HH:mm:ss:SSS}: %m%n 
log4j.appender.ChatLogs.File=logs/chats.log 
log4j.appender.ChatLogs.Threshold=INFO 
log4j.appender.ChatLogs.Priority=INFO 
log4j.appender.ChatLogs.DatePattern='.'yyyy-MM-dd 

log4j.logger.chatfilter.ChatFilterPlugin=info, ChatLogs 
log4j.additivity.chatfilter.ChatFilterPlugin=false 
相關問題