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

Log4j 如何在不影响其他记录器的情况下,为cetain类/包上的appender设置日志阈值?,log4j,Log4j,我有两个伐木工人。一个附加到文件,另一个是smtp记录器。有一个类(下面是MyClass)正在记录错误消息,我只想将其记录到文件appender中。这能做到吗 我尝试添加这个,但没有成功 log4j.logger.com.test.MyClass=OFF, email_logger 这是我的log4j属性 log4j.logger.com.test=INFO, file_logger, email_logger log4j.logger.com.test.MyClass=OFF, email_

我有两个伐木工人。一个附加到文件,另一个是smtp记录器。有一个类(下面是MyClass)正在记录错误消息,我只想将其记录到文件appender中。这能做到吗

我尝试添加这个,但没有成功

log4j.logger.com.test.MyClass=OFF, email_logger
这是我的log4j属性

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

我想出来了。我想得不对。通过上面的配置,我实际上完全关闭了MyClass上的所有日志记录。我想做的是从MyClass中删除email appender并保留文件appender。我还需要在MyClass上添加false的additivity,以便基本(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