springboot配置logback,控制台不输出mybatis日志

时间:2025-04-27 14:52:03

最近遇到一个问题,服务器经常报磁盘空间不足,定位了一下问题,是某个微服务中的定时器,对接淘宝,快手等第三方平台。同步订单数据,规则是每分钟执行一次,每次都有十几万笔订单。因为订单数据有时候字段为空,所以来发人员为了后期定位问题,将每笔订单的数据都打印出来。

文章目录

  • 中修改日志的配置
  • 控制台不输出mybatis的日志

中修改日志的配置

首先,经过统计,大概每小时,订单数据的日志大小在900M左右,每天光这个定时器的日志大小就有24G。
中相关配置和的配置如下。
作大小限制和时间限制

<appender name="application" class="">
        <file>${LOG_HOME}/</file>
        <rollingPolicy class="">
            <!-- rollover daily -->
            <fileNamePattern>${LOG_HOME}/application.%d{yyyy-MM-dd}.%</fileNamePattern>
            <!-- each file should be at most 100MB, keep 30 days with of history, but at most 20GB -->
            <!--日志文件最大的大小-->
            <maxFileSize>100MB</maxFileSize>
            <!--日志文件保留天数-->
            <maxHistory>10</maxHistory>
            <totalSizeCap>2GB</totalSizeCap>
        </rollingPolicy>
        <encoder class="">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:} [%X{traceId}] [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>
<appender name="mybatis" class="">
        <file>${LOG_HOME}/</file>
        <rollingPolicy class="">
            <!-- rollover daily -->
            <fileNamePattern>${LOG_HOME}/mybatis.%d{yyyy-MM-dd}.%</fileNamePattern>
            <!-- each file should be at most 100MB, keep 30 days with of history, but at most 20GB -->
            <!--日志文件最大的大小-->
            <maxFileSize>100MB</maxFileSize>
            <!--日志文件保留天数-->
            <maxHistory>1</maxHistory>
            <totalSizeCap>2GB</totalSizeCap>
        </rollingPolicy>
        <encoder class="">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:} [%X{traceId}] [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>

并且,不能让mybatis的日志输出到中,不然sql日志过多,会导致文件很难查看到想要的信息。
增加配置:

<logger name="" level="info" additivity="false">
        <appender-ref ref="mybatis"/>
    </logger>

注意上面的日志级别是info ,不要写debug的日志级别。第二点是additivity=“false”,这样,mybatis的日志就不会写到中。

控制台不输出mybatis的日志

除此之外,在服务器中有个控制台的输出日志,文件,mybatis日志不断的写到这个中,那么现在需要做的就是不要忘中写mybatis的日志。

解决思路:
如果你要往中写mybatis的日志该怎么操作?目前项目使用的是mybatis-plus
答案是在中增加配置

-impl=

那么把这个配置删除,就能达到不往控制台日志中写mybatis的日志。

经过验证,成功解决