簡體   English   中英

多個appender log4j性能

[英]Multiple appenders log4j performance

我正在使用slf4j(log4j的實現)登錄我的Java項目。 目前,我有2個附加程序,FILE和CONSOLE。

我想知道以下兩件事:

  • 使用多個追加程序(在這種情況下為CONSOLE和FILE)是否會導致日志記錄中的性能問題?

  • 什么時候有人要同時使用CONSOLE和FILE附加程序?

寫入CONSOLE和FILE時,您正在寫入2個不同的流。 在多線程系統中,性能影響不會很大,但是大容量情況仍然很明顯。

log4J手冊

The typical cost of actually logging is about 100 to 300 microseconds.

這包括構建語句並編寫語句,但是如果您日志記錄繁重,那么編寫所需的時間仍然很明顯。

但是您需要問一個更基本的問題- 為什么要登錄?

  1. 跟蹤正在發生的事情
  2. 找出錯誤

CONSOLE對於第一部分沒有用,因為日志沒有保存在任何地方。 如果日志記錄繁重,並且所有日志都發送到CONSOLE,那么日志量將使控制台上的輸出不可讀,因此目的2也將失效。

海事組織(IMO)使用更少的東西從文件中讀取日志更為有意義。 一般情況下,您登錄到文件,並且如果必須的話,僅將ERROR消息記錄到控制台,因為一些ERROR消息將表明出現問題,而控制台上的數百行日志只是垃圾,因為您無法當控制台刷新得如此之快時,它毫無意義。

TL-DR

成本可能不高,但是為什么在沒有獲得額外好處的情況下又產生額外成本?

閱讀有關日志4j性能的這些鏈接。 log4j性能 log4j降低的應用程序性能 log4j附加程序

  1. 我要求您注意任何性能變化。
  2. 例如,您可能希望守護程序應用程序同時在控制台和文件中登錄。 這似乎並不是一種罕見的行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM