踩坑记 第一记:logback日志没有滚动的问题
踩坑记 第一记:日志没有滚动的问题
先说一说场景吧,客户反映没有数据了,然后楼主就去查日志,结果发现日志没有滚动还保留很多天之前,但是日志大小已经到达楼主设定的阈值了,为什么没有大小滚动呢,导致楼主没有查到这个BUG。
之前的日志:
<!-- 按照每天生成日志文件 -->
<appender name="pptnlogfileAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/Transfer_ST_PPTN_R.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover 保存历史记录到这个文件夹一日起为后缀 -->
<fileNamePattern>${LOG_HOME}/Transfer_ST_PPTN_R.log.%d{yyyy-MM-dd}.zip
</fileNamePattern>
<!-- keep 30 days' worth of history -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder
class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
<!--日志文件最大的大小 -->
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
我看我配的这个和网上80%的详细讲解logback日志的其他的人配的一样。但是就是木有滚动啊。
楼走又找呀找,测呀测,看到以下两篇一毛一样的解决了问题:
logback 每天生成和大小生成 冲突 TimeBasedRollingPolicy SizeBasedTriggeringPolicy
logback每天生成日志失败,TimeBasedRollingPolicy和SizeBasedTriggeringPolicy冲突
两个人都是原创。
之后经过修订:
<!-- 按照大小滚动日志文件 -->
<appender name="pptnlogfileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/Transfer_ST_PPTN_R.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/Transfer_ST_PPTN_R.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>5GB</totalSizeCap>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
经过测试:
经验和教训:网上的不一定都是对的,自己一定要测试。