我是否必须为log4j中的所有类创建appender?

时间:2016-09-14 10:35:06

标签: java logging log4j

我使用log4j作为我的最终项目。在我的项目中使用log4j之前,我使用单个类测试了它。这很好。
然后我将log4j添加到我的项目中,并在很多类中使用它:

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. 我可以在不同的包中使用一个属性文件吗?

2 个答案:

答案 0 :(得分:1)

我找到了解决方案。我删除了根记录器并为我的两个包添加了两个记录器。

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

现在工作正常。

答案 1 :(得分:0)

您可以使用 root logger 来记录整个应用程序。

# Root logger option
log4j.rootLogger=INFO, file

请仔细阅读此链接 https://www.mkyong.com/logging/log4j-log4j-properties-examples/