log4j 在 Catalina.out 和日志文件之间复制了日志

log4j duplicated logs between Catalina.out and log file

我正在尝试为 java 中的 Web 应用程序优化 log4j 库。 我们在 Tomcat7 中有一个服务器,所有完成的配置都正常工作,但我注意到在 LOG4J 属性创建的文件和 catalina.out.

之间有重复的日志
#LOG4J configuration
log4j.rootLogger=INFO, Appender1,Appender2

log4j.appender.Appender1=org.apache.log4j.ConsoleAppender
log4j.appender.Appender1.layout=org.apache.log4j.PatternLayout
log4j.appender.Appender1.layout.ConversionPattern=%-7p %d [%t] %c - %m%n

log4j.appender.Appender2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.Appender2.File=${catalina.base}/logs/logfile.out
log4j.appender.Appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.Appender2.layout.ConversionPattern=%-7p %d [%t] %c - %m%n
log4j.appender.Appender2.DatePattern='-'yyyyMMdd'.log'

logfile.out 中列出的所有日志都包含在 catalina.out 中。

我能做什么?

ConsoleAppender 正在 catalina.out 中打印日志,因此从您的 log4j 配置文件中删除 ConsoleAppender 将解决您的问题。

一般在web应用中,ConsoleAppender是不用的。