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}.log</FileNamePattern>        <!--日志文件保留天数-->        <MaxHistory>30</MaxHistory>    </rollingPolicy>    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">        <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>    </encoder>    <!--日志文件最大的大小-->    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">        <MaxFileSize>10MB</MaxFileSize>    </triggeringPolicy></appender>





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


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

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


网上方法二: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}.log</FileNamePattern>        <!--日志文件保留天数-->        <MaxHistory>30</MaxHistory>    </rollingPolicy>    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">        <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>    </encoder>    <!--日志文件最大的大小-->    <!--<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">-->        <!--<MaxFileSize>10MB</MaxFileSize>-->    <!--</triggeringPolicy>--></appender>


生成结果:


总结:

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。