我的web應用程序(部署在tomcat 7上)使用hibernate 4.2,它使用jboss-logging進行日誌記錄。 Jboss日誌記錄在路徑上找到slf4j並使用它。反過來,我有logback-classic來輸出日誌。一切都工作得很好,但我不能自定義根日誌記錄級別,即logback <logger>當日志來自jboss日誌記錄時忽略級別
<logger name="o.h.cfg.annotations" level="info"/>
<logger name="rest.helpers" level="info"/>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
結果:
的logback測試16:47:03.689 [HTTP-BIO-8080-EXEC-5] DEBUG org.jboss.logging - 記錄提供者:org.jboss.logging.Slf4jLoggerProvider
的logback測試16:47:04.244 [HTTP-BIO-8080-EXEC-5] DEBUG ohcfg.annotations.EntityBinder
logback-test 10:00:11.911 [localhost-startStop-1] INF O rest.helpers.MyApplication
對於來自jboss(o.h.cfg.annotations。*)的消息,級別設置爲info,但會打印一條調試消息。當我直接使用slf4j(rest.helpers。*)時,它會正確過濾掉我的調試信息,並打印我的信息。現在
,如果根日誌級別被設置爲 「無」,允許一些調試消息將打印所有這些:
<logger name="o.h.cfg.annotations" level="debug"/>
<logger name="rest.helpers" level="debug"/>
<root level="none"/>
的logback測試10:22:25.926 [本地主機 - startStop-1 ] DEBUG rest.helpers.MyApplication -dMyApplication()2013年8月2日上午10點22分26秒org.glassfish.jersey.server.ApplicationHandler初始化 INFO:起爆澤西應用
的logback測試10:22:26.253 [ localhost-startStop-1] INFO rest.helpers.MyApplication
的logback測試10:22:42.995 [HTTP-BIO-8080-EXEC-5] DEBUG org.jboss.logging - 記錄提供者:org.jboss.logging.Slf4jLoggerProvider
的logback試驗10點22分: 43.025 [HTTP-BIO-8080-EXEC-5] DEBUG org.hibernate.type.BasicTypeRegistry
我沒有讓org.hibernate作爲調試消息,他們爲什麼會出現?我驗證了正確的配置文件(通過更改日誌格式)
請幫我理解這一點。
我的類路徑中包含
- SLF4J的API 1.6.1
- 07月到SLF4J 1.6.1
- log4j的環比SLF4J 1.6.1
- 的logback核心1.0.33
- logback-classic 1.0.33
- jboss-logging 3.1.0.GA.
logback.xml和logback-test.xml都在類路徑中。的logback。xml包含<root level="warn">
並沒有進一步的專業化
你有沒有想過這個解決方案?我在部署到Websphere 8的應用程序上看到了相同的行爲。 – FGreg
相關:https://forum.hibernate.org/viewtopic.php?f=1&t=1032044&start=0 – FGreg