Jboss中使用Log4J输出Hibernate所生成的SQL中的参数值

Jboss中使用Log4J输出Hibernate所生成的SQL中的参数值

>>打开Jboss中配置LOG的配置文件:{JBOSS_HOME}\server\mycis\conf\jboss-log4j.xml,更改其中的Threshold的值为TRACE.目的是让Jboss能输出TRACE级别的日志.

   <!-- ============================== -->
   <!-- Append messages to the console -->
   <!-- ============================== -->


   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
      <param name="Target" value="System.out"/>
      <param name="Threshold" value="TRACE"/>

      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] %m%n"/>
      </layout>
   </appender>

>>添加Hibernate日志限制,以便输出Hibernate所生成的SQL中的参数值的Java文件能输出Trace级别的日志,同时还要保证其它的都能继续使用原来的INFO或者DEBUG级别(不然会打印出很多日志的,不方便观察得分析).

   <!-- ================ -->
   <!-- Limit categories -->
   <!-- ================ -->

   <category name="org.jboss.web">
     <priority value="INFO" />
   </category>

   <category name="org.jboss.ha">
     <priority value="INFO" />
   </category>

   <category name="com.arjuna">
     <priority value="INFO" />
   </category>

   <category name="org.hibernate">
     <priority value="INFO" />
   </category>

   <category name="org.hibernate.type">
     <priority value="TRACE" />
   </category>

>>对于普通非WEB的应用,可以直接调整项目里的LOG4J配置文件,如下:

log4j.properties

log4j.rootLogger=INFO,stdout
#默认下让Hibernate输出INFO级别的LOG
log4j.logger.org.hibernate=INFO
#对参数值的输出时,使用TRACE级别来输出
log4j.logger.org.hibernate.type=TRACE
 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c:%L - %m%n

猜你喜欢

转载自jerval.iteye.com/blog/2037500
今日推荐