2014-02-23 44 views
4

如何讓hibernate 4通過logback登錄?我有一個戰爭部署到野蠻8決賽,並且我正在使用帶有logback的slf4j。日誌記錄設置在應用程序中100%工作,控制檯appender和文件appender按預期工作。休眠4蜻蜓8日誌記錄不工作

這裏是我做過什麼讓SLF4J +的logback工作:

排除與JBoss部署,structure.xml在WEB-INF日誌子系統:

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-deployment-structure> 
    <deployment> 
     <exclude-subsystems> 
      <subsystem name="logging" /> 
     </exclude-subsystems> 
    </deployment> 
</jboss-deployment-structure> 

包括SLF4J的logback和依賴於POM:

<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

個新增3伐木者logback.xml:

<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追加程序,即使我的根記錄是設置爲跟蹤。 。 。

的的logback ViewStatusMessagesServlet看起來健康,並顯示註冊的休眠記錄器:記錄儀的 2014年2月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獲取預先準備好的語句。這也沒有提供任何方法來獲取查詢參數不幸

任何人都可以幫我嗎?

回答

3

因爲Hibernate是不是你部署的一部分,它不能在部署中使用的logback的配置服務器的一部分。 Hibernate將始終使用服務器日誌記錄配置。通常這在日誌子系統中,但是如果被移除,則由配置目錄中的logging.properties文件控制。

可能可以配置服務器,單機至少絕對不是域名,使用的logback。我沒有試過這個,需要一些工作。你必須確保在引導時jboss-logmanager模塊沒有被JBoss模塊加載,並且logback沒有被加載。再次,這可能會或可能不會工作:)如果你這樣做,但你將失去任何管理功能來配置日誌記錄,例如,打開調試日誌記錄。

+0

我最終加入伐木者到我的獨立,full.xml文件中的配置目錄(注意:我正在用於開發獨立的完整的個人資料),不是100%滿意,因爲這會將冬眠的所有應用程序,但其確定爲現在。 。 。 – Sphynx

+0

我試圖設置系統屬性org.jboss.logging.provider = SLF4J如下陳述:http://docs.jboss.org/hibernate/orm/4.3/topical/html/logging/Logging.html和我的Java。 lang.NoClassDefFoundError:org/slf4j/LoggerFactory。把Hibernate消息記錄到我自己的文件應該不是那麼困難,如果它? – alex

+0

您是否使用logback作爲日誌管理器?該錯誤使得它看起來像slf4j不在你的課程路徑。 –