原配置文件
<appender name="MTAFile" class="ch.qos.logback.classic.sift.SiftingAppender">
<discriminator>
<key>event_name</key>
<defaultValue>unknown</defaultValue>
</discriminator>
<sift>
<appender name="File-${event_name}" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤器,只记录WARN级别的日志 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志输出位置 可相对、和绝对路径 -->
<fileNamePattern>${mta_log_dir}/%d{yyyy-MM-dd}/mta-${event_name}_%d{yyyy-MM-dd_HH}.log</fileNamePattern>
<maxHistory>${maxHistory}</maxHistory>
<!-- <maxFileSize>${maxFileSize}</maxFileSize>-->
</rollingPolicy>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
</sift>
</appender>
失效原因
因为想把日志安时间分割目录和文件,导致这里出现多个%d时间,导致分割失效
<fileNamePattern>${mta_log_dir}/%d{yyyy-MM-dd}/mta-${event_name}_%d{yyyy-MM-dd_HH}.log</fileNamePattern>
解决办法
在次要的%d参数里面加上, aux
,如下我在生成目录的地方加了这个就行了
<fileNamePattern>${mta_log_dir}/%d{yyyy-MM-dd, aux}/mta-${event_name}_%d{yyyy-MM-dd_HH}.log</fileNamePattern>