[b]hibernate log打印[/b]
遇到生产问题,明明配置了log4j.xml,却还一直打印到catalina.out下,导致catalina.out无限制增长,半年占满磁盘空间。
搞了一天还没弄清楚问题,虽然百度看到别人的在log4j配置文件里边配置hibernate的输出却一直没有生效。后来看到catalina.out启动日志包含
表示与slf4j绑定了,又搜索了一下,发现有说使用logback.xml打印hibernate的输出日志。看到logback.xml的确与slf4j绑定的,因此增加logback.xml单独打印hibernate的log,以下代码结合自己项目摘抄别人的
这个可以去掉,打印出来的log太多
遇到生产问题,明明配置了log4j.xml,却还一直打印到catalina.out下,导致catalina.out无限制增长,半年占满磁盘空间。
搞了一天还没弄清楚问题,虽然百度看到别人的在log4j配置文件里边配置hibernate的输出却一直没有生效。后来看到catalina.out启动日志包含
SLF4J: Class path contains multiple SLF4J bindings.
表示与slf4j绑定了,又搜索了一下,发现有说使用logback.xml打印hibernate的输出日志。看到logback.xml的确与slf4j绑定的,因此增加logback.xml单独打印hibernate的log,以下代码结合自己项目摘抄别人的
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder charset="UTF-8"> <!-- encoder 可以指定字符集,对于中文输出有意义 -->
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger -- %msg -- %n</pattern>
</encoder>
</appender>
<appender name="RollingFile"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>TRACE</level>
</filter>
<!-- 可让每天产生一个日志文件,最多 10 个,自动回滚 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/home/workway/web/log/aciHibernate-%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>10</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger -- %msg -- %n</pattern>
</encoder>
</appender>
<!-- 输出到控制台和文件,可定义更多的 Appender -->
<root level="DEBUG">
<appender-ref ref="RollingFile" />
</root>
<!-- 下面配置一些第三方包的日志过滤级别,用于避免刷屏 -->
<logger name="org.hibernate" level="WARN" />
<logger name="com.opensymphony" level="WARN" />
<!-- show parameters for hibernate sql 专为 Hibernate 定制 -->
<logger name="org.hibernate.type.descriptor.sql.BasicBinder"
level="TRACE" />
<logger name="org.hibernate.type.descriptor.sql.BasicExtractor"
level="DEBUG" />
<logger name="org.hibernate.SQL" level="DEBUG" />
<logger name="org.hibernate.type" level="TRACE" />
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />
</configuration>
<logger name="org.hibernate.type" level="TRACE" />
这个可以去掉,打印出来的log太多