設置日誌記錄級別

開放

4.1 日誌級別列表

您編寫了程序,將其上傳到服務器,然後您立即開始有疑問:

  • 如何確保debug()該方法在工作時不起作用production
  • 日誌中的信息太多,是否只留下錯誤信息?
  • 如何查看應用程序某一部分的詳細日誌?

當然,日誌的創建者幾十年前就面臨過同樣的事情。我不會告訴你這個問題在C語言中是如何解決的,但是在Java語言中卻非常漂亮地解決了。

日誌在將信息寫入. 您可以通過設置日誌記錄級別非常快速地減少/增加日誌的詳細信息。下表描述了這些級別:

等級 筆記
1個 全部 記錄所有消息
2個 痕跡 調試時的小提示
3個 調試 對調試很重要的消息
4個 信息 簡單的消息
5個 警告 只寫致命、錯誤和警告
6個 錯誤 只寫錯誤和致命錯誤
7 致命的 只寫致命錯誤
8個 離開 不要將消息寫入日誌

這些級別在過濾消息時使用。如果您將日誌記錄級別設置為WARN,那麼所有不重要的消息都WARN將被丟棄:TRACEDEBUGINFO。如果將過濾級別設置為FATAL,則甚至ERROR

還有兩個嚴重級別用於過濾 - 這OFF(丟棄所有消息)和ALL- 寫入所有消息(不丟棄任何內容)。

4.2 日誌設置示例

讓我們看一個簡單的日誌設置示例。為此,我們需要 log4j.properties 文件,該文件可以放在資源文件夾中。讓我們向其中添加以下內容:

# Root logger option
log4j.rootLogger=WARN, stdout

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}

在第一行中,我們設置了日誌記錄級別 - WARN。這意味著寫入帶有狀態的記錄器的消息DEBUGINFO被忽略。

  • 指定我們將使用什麼類型的 appender -ConsoleAppender
  • 指定我們將寫入日誌的位置 -System.out
  • 我們設置將控制記錄格式的類 -PatternLayout
  • 設置所有消息的錄音格式 - 日期和時間

4.3 常見的日誌記錄錯誤

還有一點很重要——日誌記錄中的常見錯誤。做某事的選項不多,但可以確定幾個常見的錯誤:

  1. 太多的記錄。您不應該記錄每一步,這在理論上可能很重要。有一個規則:日誌可以加載性能不超過 10%。否則會有性能問題。
  2. 將所有數據記錄到一個文件中。這將導致它在某些時候很難讀/寫,更不用說某些系統上有文件大小限制。
  3. 使用錯誤的日誌級別。每個級別的日誌記錄都有明確的界限,應該得到尊重。如果邊界模糊,您可以就使用哪個級別達成一致。
留言
  • 受歡迎
你必須登入才能留言
此頁面尚無留言