2016-03-04 67 views
1

在日誌中添加運行時錯誤的源方法可以大大提高解決問題的效率,並且是調試大型項目的有用工具。例如,如果在日誌appender的PatternLayout中設置了一些標誌(例如%M),則Log4j可以將此信息添加到其日誌中。使用Log4j記錄方法名稱的缺點

但是,Apache documentation of PatternLayout發出關於包含源方法名日誌以下警告:

警告生成呼叫者位置信息是極其緩慢的,應避免使用,除非執行速度不是問題。

在現實世界的情況下,有沒有人擁有(權威)的經驗?鑑於其可觀的調試優勢,這種記錄是否真的被「避免」或是否可以接受?

回答

1

你絕對不會想要它在熱門的代碼。它可能會使用Exception的堆棧跟蹤來執行它,這確實很慢。

Log4j具有可配置的日誌記錄級別。我建議你只在調試級別的日誌中啓用這個功能。在正常操作中您應該避免這種情況。

+1

將記錄器實例綁定到類名稱。然後假定該消息具有相當的獨特性,那麼在查看日誌時應該能夠輕鬆確定方法/問題。 – user3745362

+0

這是一個觀點:當你想知道日誌消息來自何處時,當然你可以只搜索你的代碼來查找消息的子字符串並找到它? ...那麼爲什麼你想要這個功能呢? –