日誌很重要,日誌記錄對維護網路應用至關重要,日誌記錄不力可能導致問題無法被發現,從而引起客戶不滿。
常見日誌級別:
大多數程式語言和日誌庫都提供多種日誌級別,通常包括ERROR、WARN、INFO、DEBUG 和 TRACE。不過,不同語言和框架的具體級別及其用法可能會有很大差異。
日誌的目的:
日誌有多種用途,包括發現和修復錯誤、除錯、瞭解應用程式使用情況以及深入瞭解系統如何工作。
日誌級別需要簡單性:
在實踐中,通常兩個日誌級別就足夠了:INFO 和 ERROR。
- INFO 日誌提供上下文,有助於瞭解應用程式正在做什麼
- 而 ERROR 日誌則提醒開發人員需要注意的問題。
其他日誌級別不需要:
作者批評了 WARN、DEBUG 和 TRACE 等附加日誌級別的使用,認為它們往往會導致混亂:開發人員可能會被大量警報淹沒,導致重要問題被忽視。
這些級別的日誌要麼是無用的,應予以刪除;
- 要麼是對除錯有用的,應作為 INFO;
- 要麼是重要的,應作為 ERROR 處理。
最佳實踐:
文章提出了幾種增強日誌的最佳實踐,包括:
- 附加請求或跟蹤 ID、
- 包含時間戳、
- 為使用者或文件上下文新增相關 ID、
- 記錄審計資訊、
- 指出設定了哪些功能標誌,
- 以及指定日誌的來源。
日誌一致性:
作者強調了日誌記錄一致性的重要性,建議不要在修復漏洞時新增日誌,之後又將其刪除。相反,他們建議維護一套對各種問題都有用的通用日誌。
總結:
log4j等現代日誌框架只需要兩者:
- 闡明上下文
- 突出問題所在
這兩種型別正是簡明邏輯的體現,首先從這兩個入手,其他警告級別是更多細節,從屬於這兩種型別,如果這兩種型別不明顯,可以使用其他級別。但是如果每個程式設計師都具有上下文概念,那麼一切簡單多了。