首页 文章

Hibernate 4 Wildfly 8日志记录无法正常工作

提问于
浏览
5

如何让hibernate 4通过logback登录?我有一个战斗部署到wildfly 8 final,我正在使用slf4j和logback . 日志设置在应用程序中100%工作,控制台appender和文件appender都按预期工作 .

以下是我为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 :

<logger name="my.package" level="TRACE"/>
<logger name="org.hibernate.type" level="ALL" />
<logger name="org.hibernate" level="TRACE" />

我没有在日志中看到任何与hibernate相关的内容 .

我从hibernate看到的任何东西都是我添加到persistence.xml的时候:

<properties>
    <property name="hibernate.show_sql" value="true"/>
    <property name="hibernate.format_sql" value="true"/>
</properties>

但它会记录到服务器日志和控制台,而不是我的logback appender,即使我的根 Logger 设置为跟踪 . . .

logback ViewStatusMessagesServlet看起来很 Health ,并显示已注册的hibernate Logger :2014-02-23 19:02:37 INFO LoggerAction将logger [org.hibernate.type]的设置级别设置为ALL

2014-02-23 19:02:37 INFO LoggerAction将 Logger [org.hibernate]设置为TRACE

我还可以使用在persistence.xml中注册的hibernate.ejb.interceptor来记录准备好的语句 . 不幸的是,这也没有提供任何方法来获取查询参数

谁能帮我吗?

1 回答

  • 4

    由于Hibernate不是部署的一部分,并且是服务器的一部分,因此无法在部署中使用logback配置 . Hibernate将始终使用服务器日志记录配置 . 通常,这位于日志记录子系统中,但如果删除则由配置目录中的 logging.properties 文件控制 .

    有可能将服务器(至少绝对不是域)配置为使用logback . 我没有尝试过,这需要一些工作 . 您必须确保JBoss模块在启动时不会加载jboss-logmanager模块,并且确保加载了logback . 这可能也可能不起作用:)如果你这样做虽然你将失去任何管理功能来配置日志记录,例如打开调试日志记录 .

相关问题