Log4j 配置不好可能導致你的日誌重複列印
也是一個老專案,一直沒有注意到日誌的配置細節,這些配置都是老專案中直接拿過來用的。但是經過一段時間的運營發現這個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 //這樣就不會重複列印日誌了
看看你的日誌是這樣設定的嗎?