避免linux下hibernate打印到catalina.out中

在生产环境中,由于Hibernate日志不断写入catalina.out,导致文件持续增大并最终占满磁盘。通过研究发现,系统已与slf4j绑定。为解决此问题,引入logback.xml配置文件,专门处理Hibernate的日志输出,从而避免对catalina.out的影响。调整后的logback.xml配置有助于更好地管理和控制Hibernate的日志级别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[b]hibernate log打印[/b]
遇到生产问题,明明配置了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太多
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值