我正在開發一個java應用程序,我必須使用日誌記錄機制。現在我很困惑選擇Java庫記錄器或去Log4j記錄器。使用java.util.logging和Log4j Logger的區別
所以我想知道什麼時候我可以去java日誌記錄器 ,當我可以去log4j記錄器。
我正在開發一個java應用程序,我必須使用日誌記錄機制。現在我很困惑選擇Java庫記錄器或去Log4j記錄器。使用java.util.logging和Log4j Logger的區別
所以我想知道什麼時候我可以去java日誌記錄器 ,當我可以去log4j記錄器。
我建議你去SLF4J而不是你的應用程序從特定的日誌框架分離。它具有各種流行日誌框架的適配器,如Jakarta日誌記錄,JDK1.4日誌記錄,log4j等,使其成爲日誌記錄需求的良好抽象。
記錄器類不是早期的jdk的一部分,所以幾個庫實現彈出。 Log4j庫有一套最全面的日誌工具(格式化工具,附加程序等)。但是,對於大多數開發人員來說,這將是一個矯枉過正的問題,簡單的java.util.Logger就足夠了。
我個人對我的記錄器實現使用自定義包裝。這使我能夠定義自定義調用來執行功能記錄/審計。
我發現Log4j在調整日誌記錄cfg時沒有在生產環境中重新編譯代碼時更靈活。
是的,我總是選擇/建議使用log4j,而不是默認的Java日誌記錄。然後我發現了公共日誌,在啓動時可以做出這個決定。這很好,因爲可能在生產標準中需要Java(無論出於何種原因)。在開發過程中,您擁有log4j的靈活性/強大功能。但是現在我不再使用這兩個包了!我建議現在使用的軟件包是SLF4J(http://www.slf4j.org/)和BackLog(http://logback.qos.ch/)。 – Verhagen 2010-02-13 15:18:18
有Apache Commoms Logging項目和SLF4J,其中任一個抽象底層日誌記錄庫。
在實踐中,我傾向於使用Log4J來構建日誌記錄類。主要是因爲可以在應用程序服務器中爲每個Web應用程序配置Log4J,而每個JVM配置JDK日誌記錄。
我現在推薦的方法是使用SLF4J作爲日誌API。然後,您可以在發現它們時根據您的需要選擇日誌框架。
我寫了一篇關於我認爲是開始使用SLF4J和一個簡單的「登錄到System.out」的最佳實踐的文章。 http://runjva.appspot.com/logging101/index.html
希望它有幫助。
一旦去SLF4J,那麼也去LogBack,因爲它是log4j(同一作者)的改進版本。 – Verhagen 2010-02-13 15:10:54