如何在不影响其他记录器的情况下为某个类/包上的appender设置日志记录阈值?

时间:2012-01-10 17:09:37

标签: log4j

我有两个记录器。一个附加到文件,另一个附加到smtp记录器。有一个类(下面的MyClass)记录错误消息,我只想记录到文件追加器。可以这样做吗?

我尝试添加它没有运气。

log4j.logger.com.test.MyClass=OFF, email_logger

这是我的log4j.properties。

log4j.logger.com.test=INFO, file_logger, email_logger
log4j.logger.com.test.MyClass=OFF, email_logger

log4j.additivity.com.test=false

log4j.appender.file_logger=org.apache.log4j.RollingFileAppender
log4j.appender.file_logger.file=/path/to/file.log
log4j.appender.file_logger.MaxFileSize=5MB
log4j.appender.file_logger.threshold=INFO
log4j.appender.file_logger.MaxBackupIndex=5
log4j.appender.file_logger.layout=org.apache.log4j.PatternLayout
log4j.appender.file_logger.layout.ConversionPattern=%d [%t] %-5p %c{1} - %m%n

log4j.appender.email_logger=org.apache.log4j.net.SMTPAppender
log4j.appender.email_logger.threshold=ERROR
log4j.appender.email_logger.SMTPHost=mtahost
log4j.appender.email_logger.BufferSize=512
log4j.appender.email_logger.subject=System Error
log4j.appender.email_logger.from=test@test.com
log4j.appender.email_logger.to=someone@test.com
log4j.appender.email_logger.layout=org.apache.log4j.PatternLayout
log4j.appender.email_logger.layout.ConversionPattern=%d [%t] %-5p %c{1} - %m%n

1 个答案:

答案 0 :(得分:0)

我明白了。我错误地想着它。通过上面的配置,我实际上完全关闭了MyClass上的所有日志记录。我想要做的是从MyClass中删除电子邮件appender并保留文件appender。我还需要在MyClass上添加false,以便base(log4j.logger.com.test)记录器不会获取相同的消息。

我删除了这一行:

log4j.logger.com.test.MyClass=OFF, email_logger

并添加以下内容:

log4j.logger.com.test.MyClass=INFO, file_logger
log4j.additivity.com.test.MyClass=false