0
我有很多次被調用的代碼,甚至調用logger.isDebugEnabled()的代價太大。 我可以將isDebugEnabled()值存儲到該類的靜態變量中,但是後來我放棄了在服務器運行期間啓用調試的選項。
今天我所有對Log4J的調用都是由自定義包裝完成的。
我想實現一個解決方案,如果沒有記錄器被設置爲調試,我將能夠通過檢查一些全局布爾變量,並且只有當一個或多個記錄器被設置爲調試時纔會返回ASAP,包裝器將轉發到Log4J的調用。檢查在Log4J中是否有一個記錄器設置爲DEBUG
如果有一個或多個記錄器設置爲調試,是否有方法可以詢問Log4J配置? 這樣,我可以每5秒檢查一次,並打開/關閉全局布爾值,這將被我的包裝器使用。
如果在特定類上啓用了調試,LogManager.getRootLogger()。getLevel()是否返回true? @ Zig158 – 2014-10-29 06:21:19
不,我剛剛用Logj4 1.2.17進行了測試。 如果您正在從嚴密的外觀進行日誌記錄,只需在循環的開頭檢查isDebugEnabled()。 – Zig158 2014-10-30 18:49:05