的日誌級別應使用,是org.slf4j.logger.Logger.trace or debug
用於記錄的低水平開發日誌?哪個日誌級別應該用於開發人員登錄特定日誌
回答
這是一個很好的清單描述日誌級別:
調試 這是最詳細的日誌記錄(最大音量設置)。我通常認爲Debug是生產系統的界限,並且僅用於開發和測試。我更傾向於讓自己的日誌記錄級別恰到好處,這樣我就可以獲得足夠的信息,並努力在信息級別或更高級別登錄。
信息 信息級別通常用於輸出對系統運行和管理有用的信息。信息還將用於記錄應用程序關鍵區域中的進入和退出點。但是,您可以選擇在調試級別添加更多入口和出口點,以便在開發和測試期間獲得更多粒度。
警告 警告通常用於處理「異常」或其他重要的日誌事件。例如,如果您的應用程序需要配置設置,但在缺少設置的情況下有默認設置,則應使用警告級別記錄缺失的配置設置。
錯誤 錯誤用於記錄所有未處理的異常。這通常記錄在應用程序邊界的catch塊中。
致命 致命是保留的特殊例外/條件,您可以快速挑選這些事件是必要的。我通常不會指望在應用程序的開發早期使用致命。通常情況下,只有憑藉經驗,我才能確定值得致命致命的致命綽號體驗的具體事件。畢竟,錯誤是一個錯誤。
從http://thejoyofcode.com/Logging_Levels_and_how_to_use_them.aspx
取決於你的意思是開發商日誌什麼。如果你的意思是調試信息,顯然應該使用DEBUG
。
人們往往如果能夠使用TRACE
爲非常細粒度的日誌,如方法入口,方法退出等,這將垃圾日誌文件。
這種方法可能會給你一個例子。
public String fetchMessage(long id) {
logger.entry(id);
logger.debug("Retrieving message from database");
String message = this.messageService.fetchMessageById(id);
logger.exit(message);
}
這取決於您當地的工作流程以及您的工作方式。
我們的經驗法則是,信息總是在,DEBUG在生產中需要法醫分析時記錄,但TRACE沒有登錄開發商機外。
這意味着,如果你需要有提供給您的信息進行調查,記錄它在調試。如果不是,請記錄它的蹤跡。
日誌對於調試非常重要的,有時故障排除。它很好記錄所有必需的信息。然而,過度採伐也可能妨礙性能,例如編寫長的XML消息或類似的東西。
這就是爲什麼有不同級別可用於記錄。需要爲信息種類選擇合適的級別。
例如在catch塊中具有錯誤級別的日誌。
catch (Exception e) {
log.error("Exception... information.");
}
一直需要一些明顯的信息。
log.info(「log info」); //基本信息 - 總是打開
調試級別信息
log.debug(「debug values ...」); //可以根據需要打開此級別。
它可以節省過多的日誌。
拇指規則: - 從不在日誌中記錄敏感信息。
其實沒有「開發日誌」和「用戶日誌」。 每個軟件包應包含一個獨立的API,其中包含自己的概念和。
你稱之爲「開發者日誌」可能是你的應用程序的「內核」的一個子部分,你所稱的「用戶日誌」將是「命令行」或「UI」部分。
每個軟件包都應該獨立考慮其自身的對象模型和業務規則。在這個世界中,通常在頂層上有一個「Public」部分,它處理用例的基本步驟。您還有一個用於擴展功能的「受保護的」零件和用於滿足您內部需求的「專用零件」零件。 這層可以存儲在不同的* java包 * s以分層的方式。 您的記錄練習應該基於這個圖層方案。
好的做法是使用一個API,例如java.logging或log4j的 ...至極允許您登錄一個包名的基礎。
信息應該是基本的高層次的步驟,這意味着在你的包的頂層的公共方法會發生什麼。
調試應該是一個更精細的糧食,仍然不會影響性能。
TRACE應該用於可能導致性能問題的非常詳細的日誌。記住,總是包裹調用trace()的一個IF(水平== TRACE)內,所以你不執行建設一個消息的一些無用的任務...等
WARN當有異常情況可以辦理。
ERR當一個異常沒有處理,但沒有導致關閉主線程。當我不得不終止整個過程時,
祝你好運!
雷諾
- 1. JavaScript日誌記錄庫(日誌級別)
- 2. 基於日誌記錄級別的SpringBoot日誌記錄配置
- 3. 將定製應用程序日誌發送給開發人員
- 4. Python日誌記錄級別
- 5. Android日誌記錄級別
- 6. 谷歌日誌記錄中的自定義日誌級別
- 7. Java日誌屬性:登錄某一類特定日誌文件
- 8. 如何在GWT日誌記錄中配置類特定的日誌級別?
- 9. 調整apache公共日誌記錄的日誌記錄級別?
- 10. 日誌級別未啓用NLog日誌記錄器
- 11. karaf日誌級別
- 12. MongoDB日誌級別
- 13. Log4j日誌級別
- 14. C/C++日誌工具調用取決於日誌級別
- 15. 日誌JBoss登錄
- 16. IOS:GPS登錄日誌
- 17. 溫斯頓日誌級別/隱藏日誌級別
- 18. Python日誌記錄+ webassets + cssutils:爲cssutils設置日誌級別
- 19. 特定於方法的日誌記錄
- 20. Rails日誌記錄到Apache日誌而不是應用日誌
- 21. 應用程序日誌級別
- 22. Spring Boot應用程序日誌級別
- 23. log4net性能:我應該在嘗試登錄之前檢查日誌級別嗎?
- 24. 基於在log4j的日誌記錄級別創建不同的日誌
- 25. 卡皮斯特拉諾日誌級別
- 26. Django日誌在哪裏登錄?
- 27. 扭曲的日誌級別開關
- 28. SSIS轉換級別日誌記錄
- 29. 動態更改日誌記錄級別
- 30. AppEngine TaskQueue日誌記錄級別
這是非常主觀的,基本上你需要建立在你們團隊的一些慣例。我曾試圖定義一些規則:http://nurkiewicz.blogspot.com/2010/05/clean-code-clean-logs-logging-levels.html - 但這取決於你。 – 2012-04-12 08:47:48