踩坑记 第一记: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>

经过测试:
踩坑记 第一记:logback日志没有滚动的问题

踩坑记 第一记:logback日志没有滚动的问题

经验和教训:网上的不一定都是对的,自己一定要测试。