前言
最近一个新的消息推送的接口调用量激增,导致日志文件大小太大,达到将近2G左右。使用less命令查找日志的时候,内存占用太大,服务器告警了。
提示:以下是本篇文章正文内容,下面案例可供参考
一、使用的包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
二、解决方案
1.将日志文件切割
目前是按天切割的,所以文件大小特别大(2G左右),无法在服务器上正常查看文件。
现有logback-spring.xml部分:
<!-- 获取比info级别高(包括info级别)但除error级别的日志 -->
<appender name="file-info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logPath}/${appName}-info.log</file>
<!-- 指定收集策略:滚动策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 指定生成日志保存地址 -->
<fileNamePattern>${logPath}/${appName}-info.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d [%thread] %-5level %logger[%line] - %msg%n</Pattern>
</layout>
</appender>
修改之后logback-spring.xml:
<!-- 获取比info级别高(包括info级别)但除error级别的日志 -->
<appender name="file-info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 指定过滤策略 -->
<file>${logPath}/${appName}-info.log</file>
<!-- 指定收集策略:滚动策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 指定生成日志保存地址 -->
<fileNamePattern>${logPath}/%d{yyyy-MM-dd}/${appName}-info.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<maxFileSize>200MB</maxFileSize>
<maxHistory>30</maxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d [%thread] %-5level %logger[%line] - %msg%n</Pattern>
</layout>
</appender>
修改之后,日志文件按照日期切割,并且单个文件大小达到200MB之后,会再次进行切割。