2009-01-23 76 views
3

Java的方式有很多框架/ API,這些API幫助你在你的應用程序的日誌記錄:查找在java日誌框架現場

  1. Java的API已經java.util.logging包。
  2. Apache的Log4j。
  3. Apache的Commons Logging。
  4. SLF4J(伐木外立面)。
  5. jLo。 和許多更多...

我一直使用log4j庫,我發現它足夠的大部分時間,並可擴展,當我需要更多的控制。

任何人誰經歷過一個以上的框架,可以分享他的經驗?什麼時候使用一個框架比應用架構更好?爲什麼我會比其他人更喜歡?

感謝

+0

確切的重複的http://stackoverflow.com/questions/354837/whats-up-with-logging-in-java – 2009-01-23 15:46:09

回答

-3

這個問題似乎等同於354837

簡單的答案是,你會去通用日誌如果你正在寫可以投進,你必須在日誌中,其他的選擇之一,如果不是沒有控制應用程序的庫。我個人在所有情況下都使用CL,因爲它很常見 - 我不需要記住框架之間的差異。

+0

我不是人downvoting你,但我對commons.logging有點過敏......我直到三年前才使用它,並同時將手指上的所有代碼切換到SLF4J上。我仍然認爲你的回答原油的downvote,特別是沒有評論,但有些人是這樣的:( – Huxi 2009-06-11 06:57:03

10

共享日誌記錄是source of strange classloading problems。如果可以的話,避免它。開發應用程序時我更喜歡log4j。如果您開發庫/框架並且您不想執行日誌庫,請選擇slf4j。

+1

而且我們不要忘記Commons Logging的官方綽號是「堵塞」。 – 2009-01-24 01:05:27

0

不論官位「的log4j」是標準的日誌框架。

它運作良好,已經存在了一段時間。它是數千個應用程序和軟件包使用最多的日誌記錄框架。它也是最有可能出現在開發者CV上的日誌框架。

棒與log4j的有沒有好的理由去嘗試別的。

+0

如果你使用正面,你可以根據需要切換日誌記錄後端SLF4J與commons.logging相比更好,因爲它支持參數化消息和MDC 我已經將commonklogs> 100kLines項目從過去改爲SLF4J。簡單易用,主要是搜索和刪除...更換隻需很少的手動更改,對於LOG4J也是如此 - 至少如果不使用NDC,因爲SLF4J不支持該功能。 – Huxi 2009-06-03 15:36:19

4

如果它的新代碼我會從slf4j開始,因爲它提供了最簡單的方法來在底層日誌API之間切換,只需在您的應用的classparth中包含所需的slf- [logging_api] .jar即可。例如 - 如果您從log4j開始,您仍然必須在log4j.xml中配置Conole記錄器以查看日誌記錄輸出,而slf4j只包含slf4j-simple.jar。

3

Logback是log4j的重寫。如果你喜歡log4j,你應該更喜歡logback。

此外,的logback是SLF4J API的本地實現,這意味着是您正在使用的logback,那麼你實際上是使用SLF4J。因此,如果出於任何原因您希望切換回另一個日誌框架,那麼可以是log4j或j.u.l.你可以通過用另一個替換一個jar文件來完成。