logback 日志文件不能按照日期生成日志文件BUG解决

问题描述:今天查看日志时,发现日志文件已经达到几百MB,且日志文件没有每天生成新的日志文件,只有每次启动的时候才生成了一个日志文件,应用不重启,日志文件一直会在原来文件中追加写入,不按照日期写入新的文件。



现在logback.xml配置:

<appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">                <FileNamePattern>${LOG_HOME}/electric_service.log.%d{yyyy-MM-dd}.logFileNamePattern>                <MaxHistory>30MaxHistory>    rollingPolicy>    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%npattern>    encoder>        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">        <MaxFileSize>10MBMaxFileSize>    triggeringPolicy>appender>





开始参考网上一些说法,都未能实现按日期生成日志文件,


网上方法一:appender  下面增加file 节点,生成了electric_service.log,修改时间,第二天后没有生成新的文件,失败!

<File>${LOG_HOME}/electric_service.logFile>


网上方法二:ch.qos.logback.core.rolling.TimeBasedRollingPolicy法改为ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy修改时间,第二天后没有生成新的文件,失败!


在研究发现,日志文件大小设置导致文件没有按照日期生成;

修改后logback.xml配置:

<appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">                <FileNamePattern>${LOG_HOME}/electric_service.log.%d{yyyy-MM-dd}.logFileNamePattern>                <MaxHistory>30MaxHistory>    rollingPolicy>    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%npattern>    encoder>                    appender>


生成结果:


总结:

不能同时按日志文件大小和日期分割日志文件,如果按照日期分割文件则,不能填写日志大小配置,不然会按日志大小切割,且只会生成对应大小的文件,超过规定大小后日志文件不写入,也不生成新的文件

你可能感兴趣的:(logback 日志文件不能按照日期生成日志文件BUG解决)