最近遇到一个问题,服务器经常报磁盘空间不足,定位了一下问题,是某个微服务中的定时器,对接淘宝,快手等第三方平台。同步订单数据,规则是每分钟执行一次,每次都有十几万笔订单。因为订单数据有时候字段为空,所以来发人员为了后期定位问题,将每笔订单的数据都打印出来。
文章目录
- 中修改日志的配置
- 控制台不输出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的日志。
经过验证,成功解决