2012-05-25 97 views
2

我設置了我的Java EE 6應用程序,以Jboss 7.1中的log4j快速入門爲起點。JBoss 7 + Hibernate + Log4j

我的鑰匙pom.xml的補充是:

<dependencyManagement> 
     <dependencies> 
      <!-- Define Log4j dependency and its version --> 
      <dependency> 
       <groupId>log4j</groupId> 
       <artifactId>log4j</artifactId> 
       <version>${log4j.version}</version> 
      </dependency> 
... 
     </dependencies> 
    </dependencyManagement> 

<dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <scope>provided</scope> 
     </dependency> 

版本是1.2.16。

現在我可以這樣做:

私有靜態最後記錄器記錄= Logger.getLogger(MacchinarioController.class);

並按預期使用記錄器。好!

我沒有log4j.xml和.properties文件。

現在我想讓Hibernate在控制檯中打印所有正在執行的SQL語句,包括參數值

我創造了這個log4j.xml文件,並把它放在src /主/資源源文件夾:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration> 

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

    <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
     <param name="Threshold" value="info"/> 
     <param name="Target" value="System.out"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{ABSOLUTE} [%t] %-5p %c{1} - %m%n"/> 
     </layout> 
    </appender> 

    <appender name="rolling-file" class="org.apache.log4j.RollingFileAppender"> 
     <param name="file" value="Program-Name.log"/> 
     <param name="MaxFileSize" value="1000KB"/> 
     <param name="MaxBackupIndex" value="4"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d [%t] %-5p %l - %m%n"/> 
     </layout> 
    </appender> 
    <logger name="org.hibernate"> 
     <level value="ALL" /> 
    </logger> 

    <root> 
     <priority value ="debug" /> 
     <appender-ref ref="console" /> 
     <appender-ref ref="rolling-file" /> 
    </root> 
</log4j:configuration> 

但沒有顯示出來,我在哪裏做錯了嗎?

回答

2

您是否在使用jboss-deployment-structure.xml來排除服務器版本的log4j?

如果你從頭開始一個應用程序,我絕對不會選擇log4j。我偏向於JBoss日誌記錄,但JBoss日誌記錄,slf4j或logback遠遠優於log4j。

默認情況下,JBoss AS 7使用JBoss Logging和JBoss Log Manager。雖然你真的會/可以使用JBoss Logging,因爲它可以與任何日誌管理器一起使用。

如果您確實要使用log4j,請不要使用log4j配置。將日誌記錄器/類別添加到日誌記錄子系統中,查看您正在查找的結果。所有這些,在JBoss AS 7的下一個版本中,你的log4j配置將被找到,並且只會按照你期望的方式工作。更改已被推到upstream