log4j的logger繼承性

2021-08-03 15:00:26 字數 514 閱讀 7682

最近在做專案的時候,需要給多個包定義不同的log策略,比如在包com.test.a下的log記錄到檔案file1.log中,包com.test.b下的log記錄到檔案file2.log中,其他的log記錄到file0.log中。最初是如下定義的:

log4j.rootlogger=error, stdout, file0

log4j.logger.com.test.a=info, stdout, file1

log4j.logger.com.test.b=info, stdout, file2

這樣定義之後會發現file1.log,file2.log可以正常記錄日誌,但是在file0.log中也記錄了file1.log,file2.log中的日誌。就是說記錄重複了。

比如:

log4j.logger.com.test = info, stdout

log4j.logger.com.test.a = info, stdout

結果會導致test.a下的所有日誌會在stdout輸出兩次。

log4j日誌系統 Log4j

1.1 log4j的三大核心元件 1.2 loggers 記錄器 1.4 layouts 布局 org.apache.log4j.htmllayout 以html 形式布局 org.apache.log4j.patternlayout 可以靈活地指定布局模式 org.apache.log4j.lay...

log4j 關於Logger日誌級別說明

關於影響列印日誌的級別 static level warn warn level表明會出現潛在錯誤的情形。static level error error level指出雖然發生錯誤事件,但仍然不影響系統的繼續執行。static level fatal fatal level指出每個嚴重的錯誤事件將...

自定義logger註解, 簡化log4j的配置

上次在參加支付寶架構培訓的時候,看到他們框架中有乙個不錯的對logger的註解來簡化定義,具體用法如下 logger private static log log 當時覺得不錯,也沒問他們怎麼實現的,後來自己做了乙個,基本原理如下 通過自定義乙個beanpostprocessor,在對所有bean初...