当使用ch.qos.logback.core.rolling.RollingFileAppender时,Logback框架的EvaluatorFilter不会滚动文件,如下所示:
<appender name="APPLICATION-INFO"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.root}/${CONTEXT_NAME}-INFO.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.root}/${CONTEXT_NAME}-INFO-%d{yyyyMMdd}.log
</fileNamePattern>
</rollingPolicy>
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator>
<expression>return (level == INFO || level == WARN);</expression>
</evaluator>
<OnMismatch>DENY</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="com.xxx.yyyy.zzz.logging.json.JsonLayout">
<timestampFormat>${timestampFormat}</timestampFormat>
<includeMDC>false</includeMDC>
</layout>
<immediateFlush>true</immediateFlush>
</encoder>
</appender>但下面的配置将滚动日志文件。
<appender name="APPLICATION-ERROR"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.root}/${CONTEXT_NAME}-ERROR.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.root}/${CONTEXT_NAME}-ERROR-%d{yyyyMMdd}.log
</fileNamePattern>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="com.xxx.yyy.zzz.logging.json.JsonLayout">
<timestampFormat>${timestampFormat}</timestampFormat>
<includeMDC>false</includeMDC>
</layout>
<immediateFlush>true</immediateFlush>
</encoder>
</appender> 发布于 2018-03-02 19:28:30
我有点懒得在本地测试它,但我知道可能出了什么问题:-)在logback文档中,它是编写的:
由于各种技术原因,滚转不是由时钟驱动的,而是取决于日志事件的到来。例如,在2002年3月8日,假设fileNamePattern设置为yyyy(每日滚转),午夜后第一个事件的到达将触发一次翻转。如果在午夜后23分47秒内没有日志记录事件,则实际上在3月9日凌晨00:23'47而不是凌晨0:00发生滚转。
基于此,一种可能的猜测是,您配置的默认JaninoEventEvaluator没有接受适当的日志事件。
另一种推测是你没有正确地引用附录,但是问题中没有足够的细节。
https://stackoverflow.com/questions/49057126
复制相似问题