2013-04-04 221 views
10

我將JDK日誌記錄用作日誌框架,將SLF4J用作簡單外觀。 當我登錄不同級別的日誌時,我有一些查詢。SFL4J和JDK日誌記錄之間的不同日誌記錄級別

SLF4J有下列日誌級別

跟蹤(最低嚴重)
調試
信息
警告
錯誤
致命的(最嚴重)

JDK日誌有以下日誌水平

重度(最大值)
警告
信息
CONFIG
FINE
FINER
FINEST(最低值)

如果我想將日誌級別設置爲DEBUG,然後該水平是不在JDK日誌中可用。 任何人都可以請解釋在這種情況下如何獲得DEBUG級別的日誌記錄。我們是否需要爲這種情況做任何額外的配置?

更新

這是我的屬性文件配置

處理器= com.amc.logging.handlers.DebugLogHandler

com.amc.logging.handlers.DebugLogHandler.pattern = C:日誌記錄.append =噸rue

請讓我知道我錯了什麼地方。

+0

複製? http://stackoverflow.com/questions/4278438/slf4j-logging-with-jdk-how-to-enable-debug – hd1 2013-04-04 10:11:29

+0

我已經將日誌級別更改爲在上面的鏈接mentiooned FINE,但仍然沒有得到DEBUG級別的日誌。 – 2013-04-04 11:53:33

+0

您提供的解決方案沒有幫助我解決我的問題。我用我的屬性文件配置更新了我的帖子。 – 2013-04-04 12:01:35

回答

7

我已經在波紋管的幫助下解決了這個問題。

slf4j logging with jdk – how to enable debug?

對於SLF4J我們要繪製的java.util.logging精細程度DEBUG級記錄。

而且我們必須將默認日誌記錄級別設置爲FINE或FINE的較低級別。 這可以通過將波紋管放在日誌配置文件中來實現。

.LEVEL你= FINE

0

一個進一步的問題是,雖然你已經定義了一個處理程序,您並沒有分配到任何記錄器。

將其分配給根記錄器,使用

.handlers=com.amc.logging.handlers.DebugLogHandler 

要分配到一個記錄器在應用程序中,定義了記錄

com.company.application.package.level=FINE 

而且您的處理程序分配給它:com.company.application.package.handlers=com.amc.logging.handlers.DebugLogHandler

另外,com.amc.logging.handlers.DebugLogHandler是您自己定義的類嗎?它在你的類路徑中嗎?因爲否則我不認爲java.util.logging(JUL)會識別它。

嘗試附帶JUL的處理程序之一:

handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler 

而且隨着級別配置它們,請登錄要位置和格式。

下面是一個例子logging.properties文件:https://tomcat.apache.org/tomcat-6.0-doc/logging.html#Using_java.util.logging_(default)

它使用的處理器從Apache的巨力執行,只是帶班代替從JUL:https://docs.oracle.com/javase/7/docs/api/java/util/logging/package-summary.html