日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java日志混乱

發布時間:2023/12/3 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java日志混乱 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
每個應用程序都需要記錄日志。 現在,對于在Java中確切使用什么有很多選擇。 最著名的框架是:log4j,logback,commons-logging,slf4j,java.util.logging。 還有更多的東西–時不時有人決定編寫自己的記錄器–只需轉到IDE的“打開類型”對話框并鍵入“記錄器”(更不用說有些人使用名稱“ Log”)。 還有ServletContext.log(..)和類似的東西。 確實是一團糟。 但是,讓我們從一些歷史開始(注意:這是該主題的另一篇文章 )。

首先是System.out和System.err。 但是它們不靈活,因此就需要功能豐富的日志記錄(請注意,當時我在上小學)。 可以定制格式記錄的日志,可以記錄到多個目標(文件,控制臺,電子郵件等)。因此log4j出現在1999年 。

但是也產生了其他解決方案,包括java.util.logging –嘗試使用標準JDK日志記錄。 事實證明,這是一次非常成功的嘗試。 java.util.logging于2002年初與JDK 1.4一起出現。幾個月后,由于意識到所有現有記錄器都需要一個通用日志記錄接口,導致apache common-logging 。

Commons Logging的想法是可行的–庫不應在使用它們的應用程序上強制執行特定的日志記錄實現。 因此,每個日志記錄實現都適應于庫使用的通用API –因此您的庫不使用org.apache.log4j.Logger –它使用org.apache.commons.logging.Log,并將其委托給任何日志記錄框架存在于類路徑上。 這樣,您的項目可以使用多個庫,并對所有庫使用單個日志記錄配置。

但是公共記錄不足。 人們說它造成的問題多于解決的問題。 所以的log4j的作者- CekiGülcü SLF4J(簡單記錄門面為Java) -創建了一個新的項目在2005年 。 它旨在成為更好的公共記錄。

Log4j自1999年以來已被廣泛使用,但是它還不夠好,所以請猜測誰創建了一個新項目– logback。 再次是CekiGülcü。 為什么要一個新項目? 好吧,我想是出于政治原因和需要從頭開始替換的舊代碼庫的結合。 無論如何,logback出現在2006年。它比log4j好嗎? 塞基在這里解釋 。

所以回到今天-有很多日志記錄框架和兩個外觀-commons-logging和slf4j。 每個庫都使用不同的庫,而且情況一團糟。 版本不匹配,類路徑上有大量Logger類。 Maven通過至少不允許同一日志記錄實現的多個版本而成功地簡化了這一過程,僅此而已。 而且,如果您不了解上面的所有歷史記錄以及哪個框架用于什么,那么您的項目很可能會遭受這種混亂。

有什么解決方案? 最簡單的方法是使用slf4j和logback。 為什么?

  • slf4j具有許多現有實現的橋梁。 這意味著您將刪除log4j.jar并使用log4j-over-slf4j.jar –它在同一軟件包中具有相同的類,只是實現有所不同–它委托使用中的當前slf4j實現。 這樣,所有使用log4j(或任何其他橋接實現)的庫都將與您的logback配置一起使用。 不幸的是,這在java.util.logging中不能很好地工作,因此您必須希望不要有太多的庫決定“最小的依賴范圍”。
  • logback優于log4j(相同作者-較新的實現,從以前的錯誤中學習)
  • 如果出現了比登錄更好的框架,則可以輕松切換到該框架而無需更改類。

最后,介紹一下日志記錄配置。 它應該在外部,以與其他外部化項目配置相同的方式(最好在相同的位置)。 然后,您應該基于系統的“ config.location”屬性加載它。

(在基于Spring的Web應用程序中,有Log4jWebConfigurer ,但沒有LogbackWebConfigurer 。幸運的是,它很容易編寫,并且有一些基于log4j的現有實現。在web.xml中, logbackConfigLocation參數應該是: file://${config.lotation}/logback.xml )

為什么這么簡單的事情變得如此復雜? 因為這并不簡單。 最初沒有考慮太多因素,因此需要在以后進行糾正。 自2006年以來該領域未發生重大變化是一件好事,因此我們可以認為情況保持穩定。

參考: Bozho的技術博客上來自我們的JCG合作伙伴 Bozhidar Bozhanov的 The Logging Mess 。

相關文章 :

  • 正確記錄應用程序的10個技巧
  • 每個程序員都應該知道的事情
  • Java教程和Android教程列表
  • 如何解決生產問題
  • 每個程序員或架構師都應該知道的9 + 7件事

翻譯自: https://www.javacodegeeks.com/2011/09/java-logging-mess.html

總結

以上是生活随笔為你收集整理的Java日志混乱的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。