slf4j - Hibernate 4 Wildfly 8 日志记录不起作用

标签 slf4j logback hibernate-4.x wildfly jpa-2.1

如何让 hibernate 4 通过 logback 进行日志记录?我有一场部署到 Wildfly 8 Final 的 war ,并且我正在使用 slf4j 和 logback。日志记录设置在应用程序中 100% 正常工作,控制台附加器和文件附加器均按预期工作。

这是我为使 slf4j + logback 工作所做的事情:

在 WEB-INF 中使用 jboss-deployment-struction.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>

但它会记录到服务器日志和控制台,而不是记录到我的 logback 附加程序,即使我的根记录器设置为 trace 。 。 .

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 记录准备好的语句。不幸的是,这也没有提供任何方法来获取查询参数

谁能帮帮我吗?

最佳答案

因为 Hibernate 不是您的部署的一部分,而是服务器的一部分,所以它无法在您的部署中使用 logback 配置。 Hibernate 将始终使用服务器日志配置。通常这是在日志子系统中,但如果删除则由配置目录中的 logging.properties 文件控制。

可以配置服务器(至少绝对不是域独立服务器)来使用 logback。我还没有尝试过这个,这需要一些工作。您必须确保 jboss-logmanager 模块在启动时不会被 JBoss 模块加载,而 logback 会被加载。同样,这可能有效,也可能无效:)如果您这样做,您将失去配置日志记录的任何管理功能,例如打开调试日志记录。

关于slf4j - Hibernate 4 Wildfly 8 日志记录不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21971576/

相关文章:

java - 使用 log4j2 和 logback

java - 相对路径在 lobgack.xml 包含文件中不起作用

java - 什么是用于 Spring Boot 日志记录的默认 CONSOLE_LOG_PATTERN 以及在哪里可以找到它?

java - "Error creating bean with name"创建事务管理器时

java - JPA 查询返回代理实体

java - Tomcat 4.1.24、slf4j 1.6.4 和 activemq 5.5.1 不兼容

Logback:当文件增长超过 maxFileSize 时出现异常

java - Hibernate 4 与 Java 11 兼容吗?

java - 尽管在 spring-boot-maven-plugin 中配置了排除,但日志依赖项仍然包含在 lib 文件夹中

java - 配置slf4j根据日志级别将日志存储在不同的文件中