先说结论:
原因一:
使用的rollingPolicy ch.qos.logback.core.rolling.TimeBasedRollingPolicy不对,
解决办法 :替换rollingPolicy ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy 后即可
原因二:
<FileNamePattern>中使用了多个'%d'修饰的变量参数而没加任何辅助修饰,例如:
<FileNamePattern>${LOG_HOME}/%d{yyyy-MM}/error/error-%d{yyyy-MM-dd}.%i.log</FileNamePattern>(错误示范)
解决办法:辅助变量的位置加入aux修饰
<FileNamePattern>${LOG_HOME}/%d{yyyy-MM, aux}/error/error-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
--------------------------正文开始--------------------------
项目运行几天,发现日志并没有按配置好的那样每天自动按格式生成日志文件, 于是网上找了找解决方案. 底下评论基本都是说能解决,基本上都是只说了
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
替换为:
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
这一种思路, 有部分人确实可以解决这个问题,
但放到我这个项目下就不行了, 于是我对比了一下区别
<appender name="LOG_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名 ---->>>下边这行有区别<<<---
<FileNamePattern>${LOG_HOME}/%d{yyyy-MM}/error/error-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>90</MaxHistory>
<MaxFileSize>10MB</MaxFileSize>
</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</pa