2016-09-14 31 views
0

我爲我的最終項目使用log4j。在我的項目中使用log4j之前,我使用單個類來測試它。這工作得很好。
然後我說log4j的到我的項目,我用用它在許多類:我必須爲log4j中的所有類創建appender嗎?

final static Logger logger = Logger.getLogger(Supplier.class); 

然後我得到了一個警告:

log4j:WARN No appenders could be found for logger (classes.Supplier). 
log4j:WARN Please initialize the log4j system properly. 

這是我的屬性文件:

# Root logger option 
log4j.rootLogger=DEBUG, file 
log4j.rootLogger=DEBUG, errorfile 

# Redirect log messages to console 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.errorfile=org.apache.log4j.RollingFileAppender 

# Redirect log messages to a log file, support file rolling. 
log4j.appender.file.File=C:\\HardwareLog\\INFO.log 
log4j.appender.file.MaxFileSize=5MB 
log4j.appender.file.MaxBackupIndex=10 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 

log4j.appender.errorfile=C:\\HardwareLog\\ERROR.log 
log4j.appender.errorfile.Threshhold=ERROR 
log4j.appender.errorfile.MaxFileSize=5MB 
log4j.appender.errorfile.MaxBackupIndex=10 
log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout 
log4j.appender.errorfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 
  1. 我必須爲每個班級創建appender才能使用它嗎?
  2. 我可以在不同的軟件包中使用一個屬性文件嗎?
+0

你不需要爲每個類創建一個appender。請參閱卡拉迪安答案[http://stackoverflow.com/questions/3495443/how-to-implement-use-log4j](http://stackoverflow.com/questions/3495443/how-to-implement-use-log4j)關於如何實現log4j –

+0

通常你爲一個包創建appender,而不是一個類。如果爲包創建appender,則該appender將應用於該包中的所有類以及該包的所有子包中的所有類。 – deepblue

+0

謝謝大家的快速回復 – Malinda

回答

1

我找到了解決辦法。我刪除了根記錄器,併爲我的兩個包添加了兩個記錄器。

log4j.logger.package1=DEBUG,FIRST 
log4j.logger.package2=DEBUG,SECOND 

現在它的工作正常。

相關問題