[JBoss] - 在Jboss 7.1 AS中打印hibernate的SQL方法
2014-10-27 16:16
225 查看
因为JBoss使用的是log4j,JBoss的系统日志级别默认是INFO。而Hibernate或IBatis要打印SQL,级别为DEBUG,所以,程序设置了log4j级别为DEBUG会被JBoss系统设置的INFO给覆盖了。
要解决这个问题,需要手动的配置JBoss的Log4j日志级别:
1、打开文件:jboss-as-7.1.1.Final\standalone\configuration\standalone.xml
2、找到这个节点:
3、把console-handler的<level name="INFO"/>
4、在下面的一堆logger中,加入这几个:
保存退出即可。
这是<subsystem />节点的所有内容:
在console-handler中有一个:<match pattern="JBAS011054|JBAS011006"/>
意思是过滤掉一些JBoss的错误提示信息,不然在Jboss启动时会见到有些”无聊“异常信息,碍眼。
log4j的配置信息:
最终输出结果:
要解决这个问题,需要手动的配置JBoss的Log4j日志级别:
1、打开文件:jboss-as-7.1.1.Final\standalone\configuration\standalone.xml
2、找到这个节点:
<subsystem xmlns="urn:jboss:domain:logging:1.1"> : : </subsystem>
3、把console-handler的<level name="INFO"/>
4、在下面的一堆logger中,加入这几个:
<logger category="org.hibernate.SQL"> <level name="DEBUG"/> </logger> <logger category="org.hibernate.ps.PreparedStatementCache"> <level name="DEBUG"/> </logger> <logger category="org.hibernate.type"> <level name="TRACE"/> </logger>
保存退出即可。
这是<subsystem />节点的所有内容:
<subsystem xmlns="urn:jboss:domain:logging:1.1"> <console-handler name="CONSOLE"> <filter> <not> <match pattern="JBAS011054|JBAS011006"/> </not> </filter> <formatter> <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> </formatter> </console-handler> <periodic-rotating-file-handler name="FILE"> <formatter> <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> </formatter> <file relative-to="jboss.server.log.dir" path="server.log"/> <suffix value=".yyyy-MM-dd"/> <append value="true"/> </periodic-rotating-file-handler> <logger category="com.arjuna"> <level name="WARN"/> </logger> <logger category="org.apache.tomcat.util.modeler"> <level name="WARN"/> </logger> <logger category="sun.rmi"> <level name="WARN"/> </logger> <logger category="jacorb"> <level name="WARN"/> </logger> <logger category="jacorb.config"> <level name="ERROR"/> </logger> <logger category="org.hibernate.SQL"> <level name="DEBUG"/> </logger> <logger category="org.hibernate.ps.PreparedStatementCache"> <level name="DEBUG"/> </logger> <logger category="org.hibernate.type"> <level name="TRACE"/> </logger> <root-logger> <level name="INFO"/> <handlers> <handler name="CONSOLE"/> <handler name="FILE"/> </handlers> </root-logger> </subsystem>
在console-handler中有一个:<match pattern="JBAS011054|JBAS011006"/>
意思是过滤掉一些JBoss的错误提示信息,不然在Jboss启动时会见到有些”无聊“异常信息,碍眼。
log4j的配置信息:
######################################################### # Log4j设置级别及需要输出哪种日志 ######################################################### #log4j.rootCategory=INFO, stdout, file log4j.rootLogger=INFO, stdout, file ######################################################### # 开启需要输出的日志级别到指定模块 ######################################################### log4j.logger.org.springframework=ERROR log4j.logger.org.hibernate=INFO log4j.logger.org.apache.struts2=ERROR log4j.logger.org.hibernate.SQL=DEBUG log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN 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{yyyy-MM-dd HH:mm:ss}] %m%n log4j.appender.stdout.Threshold=TRACE ######################################################### # 文件输出 ######################################################### log4j.appender.file=org.apache.log4j.DailyRollingFileAppender log4j.appender.file.File=${webApp.root}/WEB-INF/log/loginfo.log log4j.appender.file.encoding=UTF-8 log4j.appender.file.DatePattern='.'yyyy-MM-dd'.log' log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] %m%n log4j.appender.file.BufferedIO=false #log4j.appender.file.BufferSize=1024
最终输出结果:
相关文章推荐
- spring+hibernate 插入数据时控制台打印出sql语句,但是数据库中并没有数据解决方法
- Hibernate ShowSQL在后台打印SQL的方法
- Spring + mybatis+log4j在jboss6.1中无法打印sql语句解决方法
- hibernate查询方式:HQL、SQL、Criteria方法、命名、动态分离查询、例子查询
- hibernate执行原生Sql语句的方法(转)
- Log4j相对路径以及打印Hibernate的SQL和HQL记录
- Hibernate使用原生sql返回Map类型结果集的方法
- 类说明:通过打印方法,直接打印出SQLException中的警告及错误信息
- Hibernate SQLQuery 查询Oracle char类型结果为一个字符的解决方法
- java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date 解决方法
- java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date 解决方法
- ibatis执行SQL语句打印控制台的log4j.xml文件配置方法
- 異常退出jboss3.2.3後再啟動時出現sql連接異常,如sql已連接等錯誤拋出時的解決方法
- Hibernate通过SQL查询常量时只能返回第一个字符的解决方法
- Hibernate中执行SQL语句的方法(转)
- Hibernate HQL与Native_SQL_查询_Query接口_iterate方法
- Hibernate Native SQL查询常用的2种方法及对返回结果处理
- 运行JBossAS多个实例的方法
- 如何查看,当运行一个hibernate 方法后到底执行了哪些SQL语句
- Hibernate HQL与Native_SQL_查询_Query接口_选择list方法和iterate方法