log4j.properties中的这句话“log4j.logger.org.hibernate.SQL=DEBUG ”该怎么写在log4j.xml里面呢?

http://www.cnblogs.com/gredswsh/p/log4j_xml_properties.html
请问:log4j.properties中的这句话“log4j.logger.org.hibernate.SQL=DEBUG  ”该怎么写在log4j.xml里面呢?

Hibernate 默认是把 SQL 语句是输出到控制台,而控制台中的内容查阅起来并不方便,例如超过控制台缓存的内容会被清掉,不是谁都能看到控制台,难以与时间关联起来。虽然有些应用服 务器会把控制台输出重定向到文件,但总没有 Log4J 或 Slf4J 那样的专业日志工具来得便捷。

因为 Hibernate 在输出 SQL 时使用的 logger 名为 org.hibernate.SQL, 所以想要让 SQL 语句输出到 Log4J 或是 Slf4J 日志中(日志文件或是记在别处,由 Appender 决定的),只要在 log4j.properties(log4j.xml 参考相应配置) 中加上:

 log4j.logger.org.hibernate.SQL=DEBUG

记得同时把 Hibernate 配置文件中(或者 Spring 中关于 Hibernate 的配置中) 的 hibernate.show_sql 设置为 false,不然可能在控制台下会有双份输出(Log4J 配置了 ConsoleAppender 时)。

如果就用的是 Log4Back 的话,就在 Log4Back 的配置文件 log4back.xml 中加上:

<logger name="org.hibernate.SQL" level="DEBUG"/>

如果是log4j.xml就要加入这个配置:
<category name="org.hibernate.SQL">  
     <priority value="DEBUG"/>  
      <!--   
          如果指定一个appender,这些log将被输出到指定的appender   
          如:<appender-ref ref="myFile"/>     
          否则将作用于所有的appender   
       -->  
   </category>  
xml详细配置见:www.cnblogs.com/gredswsh/p/log4j_xml_properties.html
posted @ 2014-06-02 17:19  fxcl  阅读(988)  评论(0编辑  收藏  举报