2016-09-14 76 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 

现在它的工作正常。

相关问题