logback的按时间分割,每天生成一个日志文件,每个文件最大100MB,每天会有多个文件,为了方便定位问题,要求日志文件名精确到毫秒,如何配置?
<appender name="error-policy" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/error/errorLog-%d{yyyyMMdd}%d{HHmmssSSS,aux}-%i.log.gz</fileNamePattern> <maxFileSize>100MB</maxFileSize> <maxHistory>7</maxHistory> <totalSizeCap>10GB</totalSizeCap> </rollingPolicy> <encoder> <pattern>${LOG_PATTERN}</pattern> <charset>${CHAR_SET}</charset> </encoder> </appender> <appender class="ch.qos.logback.classic.AsyncAppender" name="error-async"> <discardingThreshold>0</discardingThreshold> <queueSize>1024</queueSize> <appender-ref ref="error-policy"/> </appender> <logger additivity="true" level="error" name="error-logger"> <appender-ref ref="error-async"/> </logger>
如上配置,无法达到效果
%d{HHmmssSSS,aux}只在程序启动的时候计算一次,之后不变,直到第二天。
errorLog-20201228084732109-0.log.gz
errorLog-20201228084732109-1.log.gz
errorLog-20201228084732109-2.log.gz