logback无法按照日期每天生成日志
原配置:
<appender name="INFO_FILE" class="ch.qos.logback.core.FileAppender">
<!--日志文档输出格式-->
<Prudent>true</Prudent>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} --- %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 每天日志归档路径以及格式 -->
<!--日志文件输出的文件名,按小时生成-->
<FileNamePattern>${log_path}/%d{yyyy-MM-dd-HH-mm}/info/info.%d{yyyy-MM-dd-HH-mm}.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
<maxFileSize>3KB</maxFileSize>
<!-- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">-->
<!-- <!– 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, –>-->
<!-- <maxFileSize>10MB</maxFileSize>-->
<!-- </timeBasedFileNamingAndTriggeringPolicy>-->
<!--日志文档保留天数-->
<maxHistory>90</maxHistory>
</rollingPolicy>
<!-- 此日志文档只记录info级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!-- 此日志文档记录info及以上级别的 -->
<!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">-->
<!-- <level>info</level>-->
<!-- </filter>-->
</appender>
原因出在appender标签中,使用了ch.qos.logback.core.FileAppender这个类,FileAppender不会执行rolling政策,应该换成:ch.qos.logback.core.rolling.RollingFileAppender
修改后的配置:
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--日志文档输出格式-->
<Prudent>true</Prudent>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} --- %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 每天日志归档路径以及格式 -->
<!--日志文件输出的文件名,按小时生成-->
<FileNamePattern>${log_path}/%d{yyyy-MM-dd-HH-mm}/info/info.%d{yyyy-MM-dd-HH-mm}.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
<maxFileSize>3KB</maxFileSize>
<!-- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">-->
<!-- <!– 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, –>-->
<!-- <maxFileSize>10MB</maxFileSize>-->
<!-- </timeBasedFileNamingAndTriggeringPolicy>-->
<!--日志文档保留天数-->
<maxHistory>90</maxHistory>
</rollingPolicy>
<!-- 此日志文档只记录info级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!-- 此日志文档记录info及以上级别的 -->
<!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">-->
<!-- <level>info</level>-->
<!-- </filter>-->
</appender>