由于日志配置繁雜,很多同學喜歡直接cv其他項目或網上部落格的配置檔案,而不仔細研究每個配置項。最常見的就是重複記錄日志,這不但給檢視和統計帶來不必要麻煩,還會增加磁盤和日志收集系統負擔。
下面看幾個常見導緻該錯誤的案例,大家引以為戒,避免被辭退。
1 logger配置繼承關系錯誤
定義方法記錄debug、info、warn、error四種日志:

Logback配置
配置看沒啥問題,但執行方法後明顯記錄重複了:
錯因
CONSOLE這個Appender同時挂載到倆Logger,定義的
<logger>
和
<root>
,由于定義的
<logger>
繼承自
<root>
,是以同一日志既會通過logger記錄,也會發送到root記錄,是以應用包下日志出現重複。
如此配置的初衷是啥?
本想實作自定義logger配置,讓應用内日志暫時開啟DEBUG級别。
其實,這無需重複挂載Appender,去掉
<logger>
下挂載的Appender即可
<logger name="org.javaedge.logging" level="DEBUG"/>
若自定義
<logger>
需把日志輸出到不同Appender,比如
- 應用日志輸出到檔案app.log
- 其他架構日志輸出到控制台
可設定
<logger>
的additivity屬性為false,就不會繼承
<root>
Appender