【发布时间】:2014-02-23 17:18:20
【问题描述】:
如何让 hibernate 4 通过 logback 登录?我将一场战争部署到了wildfly 8 final,并且我正在使用带有logback的slf4j。日志记录设置在应用程序中 100% 工作,控制台附加程序和文件附加程序都按预期工作。
这是我为 slf4j + logback 工作所做的:
在 WEB-INF 中使用 jboss-deployment-structure.xml 排除了日志子系统:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</deployment>
</jboss-deployment-structure>
在 pom 中包含 slf4j 和 logback 依赖:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.6</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.1</version>
</dependency>
使用 org.slf4j.Logger 登录应用
向 logback.xml 添加 3 个记录器:
<logger name="my.package" level="TRACE"/>
<logger name="org.hibernate.type" level="ALL" />
<logger name="org.hibernate" level="TRACE" />
我在日志中没有看到任何与休眠相关的内容。
我从 hibernate 中看到任何东西的唯一一次是当我添加到我的 persistence.xml 时:
<properties>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
</properties>
但即使我的根记录器设置为 trace ,它也会记录到服务器日志和控制台而不是我的 logback 附加程序。 . .
logback ViewStatusMessagesServlet 看起来很健康,并显示了已注册的休眠记录器: 2014-02-23 19:02:37 INFO LoggerAction 将记录器 [org.hibernate.type] 的级别设置为 ALL
2014-02-23 19:02:37 INFO LoggerAction 将记录器 [org.hibernate] 的级别设置为 TRACE
我还可以使用在 persistence.xml 中注册的 hibernate.ejb.interceptor 记录准备好的语句。不幸的是,这也没有提供任何获取查询参数的方法
谁能帮帮我?
【问题讨论】:
标签: slf4j logback hibernate-4.x wildfly jpa-2.1