[英]Multiple appenders log4j performance
我正在使用slf4j(log4j的實現)登錄我的Java項目。 目前,我有2個附加程序,FILE和CONSOLE。
我想知道以下兩件事:
使用多個追加程序(在這種情況下為CONSOLE和FILE)是否會導致日志記錄中的性能問題?
什么時候有人要同時使用CONSOLE和FILE附加程序?
寫入CONSOLE和FILE時,您正在寫入2個不同的流。 在多線程系統中,性能影響不會很大,但是大容量情況仍然很明顯。
The typical cost of actually logging is about 100 to 300 microseconds.
這包括構建語句並編寫語句,但是如果您日志記錄繁重,那么編寫所需的時間仍然很明顯。
但是您需要問一個更基本的問題- 為什么要登錄?
CONSOLE對於第一部分沒有用,因為日志沒有保存在任何地方。 如果日志記錄繁重,並且所有日志都發送到CONSOLE,那么日志量將使控制台上的輸出不可讀,因此目的2也將失效。
海事組織(IMO)使用更少的東西從文件中讀取日志更為有意義。 一般情況下,您登錄到文件,並且如果必須的話,僅將ERROR消息記錄到控制台,因為一些ERROR消息將表明出現問題,而控制台上的數百行日志只是垃圾,因為您無法當控制台刷新得如此之快時,它毫無意義。
TL-DR
成本可能不高,但是為什么在沒有獲得額外好處的情況下又產生額外成本?
閱讀有關日志4j性能的這些鏈接。 log4j性能 log4j降低的應用程序性能 log4j附加程序
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.