也是一个老项目,一直没有注意到日志的配置细节,这些配置都是老项目中直接拿过来用的。但是经过一段时间的运营发现这个log4j的日志总是重复打印。
153354661 [http-9080-Processor48] INFO com.asiainfo.user.UserServletBySMS - Do post ......
153354661 [http-9080-Processor48] INFO com.asiainfo.user.UserServletBySMS - Do post ......
153354661 [http-9080-Processor48] INFO com.asiainfo.user.UserServletBySMS - Do post ......
153354661 [http-9080-Processor48] INFO com.asiainfo.user.UserServletBySMS - Do post ......
153354661 [http-9080-Processor48] INFO com.asiainfo.user.UserServletBySMS - Do post ......
153354661 [http-9080-Processor48] INFO com.asiainfo.user.UserServletBySMS - Do post ......
153354661 [http-9080-Processor48] INFO com.asiainfo.user.UserServletBySMS - Do post ......
153354661 [http-9080-Processor48] INFO com.asiainfo.user.UserServletBySMS - Do post ......
出现这种情况还了得,有的时候一个请求过来,要打几万条这样的日志。挺吓人,严重影响服务器的性能。
在log4j中有个重要的配置 log4j.addivity 配置好这个,就能编译这样的情况。
正确的配置如下:
log4j.category.com.xxxx.user=INFO,stdout
log4j.additivity.com.xxxx.user=false //这样就不会重复打印日志了
看看你的日志是这样设置的吗?
本文介绍了一个老项目中遇到的Log4j日志重复打印的问题,并详细解释了如何通过正确配置log4j.additivity参数来避免日志重复打印,显著提升服务器性能。
716

被折叠的 条评论
为什么被折叠?



