我的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