我的应用程序使用log4j进行日志记录,并将其部署在WebSphere Application Server V7中。 Log4j jar包含在WEB-INF/lib
中,log4j.properties
文件位于外部并加载org.springframework.util.Log4jConfigurer
。目前,日志配置如下:
log4j.logger.com.myapp=DEBUG, InfoAppender, DebugAppender
log4j.appender.InfoAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.InfoAppender.Threshold=INFO
log4j.appender.InfoAppender.File=/home/infoFile.log
log4j.appender.InfoAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.InfoAppender.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.DebugAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DebugAppender.Threshold=DEBUG
log4j.appender.DebugAppender.File=/home/debugFile.log
log4j.appender.DebugAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.DebugAppender.layout.ConversionPattern=%d %p [%c] - %m%n
日志记录按预期工作,文件infoFile.log
和debugFile.log
已正确填充。但是,发送到这些文件的所有行也都写在服务器上的SystemOut.log
文件中,还有来自运行时的许多其他消息。
我们有许多具有此配置的WAR文件,因此SystemOut.log
文件很快就会变得非常大,并且很难找到与运行时环境相关的日志。有没有办法从infoFile.log
中排除写入debugFile.log
和SystemOut.log
的邮件?
答案 0 :(得分:0)
为避免传播到SystemOut.log
,只需将记录器的 additivity 属性设置为false即可。为此,我们将此行添加到log4j.properties
。
log4j.additivity.com.myapp=false