LOG4J - 在日志中避免两次相同的消息

Ste*_*han 5 java log4j

这是我的log4j.properties档案

# Set loggers' levels
log4j.rootLogger=warn, trace_file

# Appender
log4j.appender.trace_file=org.apache.log4j.RollingFileAppender
log4j.appender.trace_file.Append=true
log4j.appender.trace_file.File=log/myLog.log
log4j.appender.trace_file.MaxFileSize=10MB
log4j.appender.trace_file.MaxBackupIndex=50

# PatternLayout
log4j.appender.trace_file.layout=org.apache.log4j.PatternLayout
log4j.appender.trace_file.layout.ConversionPattern=%d [%p] (%F:%L) %m%n

# Classes
log4j.logger.my_package=info, trace_file
Run Code Online (Sandbox Code Playgroud)

我想要的是 :

  • 存储来自my.packagein的日志请求trace_file至少为INFOlevel
  • 仅存储来自所有其他记录器的日志请求(trace_file如果它至少是WARN水平的)

我的配置不起作用.如果my.package引发级别的日志请求WARN,则此日志请求将被写入两次.如果我使用两个单独的appender,没有问题.

我错过了什么?

sch*_*ver 6

尝试从my_package logger语句中删除"trace_file"指令.