我为我的最终项目使用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
- 我必须为每个班级创建appender才能使用它吗?
- 我可以在不同的软件包中使用一个属性文件吗?
你不需要为每个类创建一个appender。请参阅卡拉迪安答案[http://stackoverflow.com/questions/3495443/how-to-implement-use-log4j](http://stackoverflow.com/questions/3495443/how-to-implement-use-log4j)关于如何实现log4j –
通常你为一个包创建appender,而不是一个类。如果为包创建appender,则该appender将应用于该包中的所有类以及该包的所有子包中的所有类。 – deepblue
谢谢大家的快速回复 – Malinda