log4j.rootLogger=ERROR, appender2
log4j.logger.com.myproject=DEBUG, appender1
結果:自身項目的日志輸出兩遍(分別進入 appender1 和 appender2)。
Log4j 默認遞交性:子 logger 會將日志事件向上傳遞給 rootLogger。配置了 appender1 的 logger 同時也會把事件傳給 rootLogger 的 appender2,導致重複。
log4j.logger.com.myproject=DEBUG, appender1
log4j.additivity.com.myproject=false
Threshold=DEBUG,rootLogger 設置 Threshold=ERROR,配合過濾器。修改後重啟應用,觀察日志文件/控制台,確認每條日志僅出現一次。