这是我的最开始配置的logback.xml
<!-- 文件输出日志, 滚动(时间/文件大小)输出策略 -->
<appender name="DEBUGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤器,只记录debug级别的日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<OnMismatch>DENY</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
<file>${log.path}/${logfile.prefix}-debug.%d{yyyy-MM-dd}.log</file>
<!-- 日志记录器的滚动策略,按日期记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 日志输出格式 -->
<FileNamePattern>${log.path}/${logfile.prefix}-debug.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<maxFileSize>10MB</maxFileSize>
<!-- 日志保留天数 -->
<maxHistory>7</maxHistory>
</rollingPolicy>
<!-- 日志输出格式 -->
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>${log.pattern}</Pattern>
</layout>
</appender>
结果发现日志并不能拆分,控制台打印的错误如下图,百度很多说是需要修改源码,就放弃了。后来日志越积越多,查看日志的时候文件都打不开了。
决定再找一遍原因,突然在控制台发现了这个地址:
官网地址:http://logback.qos.ch/codes.html#renamingError
用谷歌翻译了一下:
File rename operations during rollover can be avoided altogether by omitting the file property in RollingFileAppender.
通过省略RollingFileAppender中的file属性,可以完全避免滚动期间的文件重命名操作。
然后就尝试了去掉配置中的 file 标签
<!-- 文件输出日志, 滚动(时间/文件大小)输出策略 -->
<appender name="DEBUGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤器,只记录debug级别的日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<OnMismatch>DENY</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
<!-- <file>${log.path}/${logfile.prefix}-debug.%d{yyyy-MM-dd}.log</file> -->
<!-- 日志记录器的滚动策略,按日期记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 日志输出格式 -->
<FileNamePattern>${log.path}/${logfile.prefix}-debug.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<maxFileSize>10MB</maxFileSize>
<!-- 日志保留天数 -->
<maxHistory>7</maxHistory>
</rollingPolicy>
<!-- 日志输出格式 -->
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>${log.pattern}</Pattern>
</layout>
</appender>
最后日志拆分成功。