Logback使用的一点小坑

最近在使用Logback时遇到的坑记录一下,避免再次遇到

在logback中我们知道 日志的回滚策略有很多种。但是常用的就是 根据时间/文件大小来滚动记录,比如每天滚动一次,每小时,日志文件超过指定大小时等等。

下面则是我想按照指定时间配置的logback.xml ,但是一直都没有生效 也就是日志文件一直都记录到一开始指定的文件中,没有滚动记录文件

节选片段

<appender name="testloger" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <File>${LOG_FILE_PATH}/${LOG_FILE_NAME}</File>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_FILE_PATH}/${LOG_FILE_NAME}.%d{yyyy-MM-dd-HH:mm}.txt</fileNamePattern>
        <MaxHistory>3</MaxHistory>
    </rollingPolicy>
    <layout class="ch.qos.logback.classic.PatternLayout">
        <pattern>${PATTERN}</pattern>
    </layout>
</appender>

这是我之前的配置文件,但是一直没有生效,也就是一直没有按照我想要的每分钟滚动记录一次。每次的日志都记录到了

    <File>${LOG_FILE_PATH}/${LOG_FILE_NAME}</File>

配置的文件中,百思不得其解,起初以为是配置文件的问题,然后在网上找了好长时间与自己实验了好多次都还是一样的问题。
然而,一次偶然的实验中最后找到了问题的所在问题就在配置文件中的这一行

<fileNamePattern>${LOG_FILE_PATH}/${LOG_FILE_NAME}.%d{yyyy-MM-dd-HH:mm}.txt</fileNamePattern>

也就是滚动文件的命名方式上。出错原因就在HH:mm这里 因为windows下文件命名方式中不允许出现:就导致了滚动文件创建失败日志就会一直记录在活动文件中,也就不会产生分割。

PS: 活动文件——是appender 下的File节点指定的文件

日志会被优先记录到这里。当触发滚动策略时,会将活动文件中的内容移到滚动文件中。每次日志都会优先记录到活动文件  

滚动文件—–是rollingPolicy 下的节点 fileNamePattern指定的文件

是根据滚动策略中fileNamePattern设定的文件,当触发滚动策略时会创建此文件

当活动文件没有指定时,则滚动文件就会是活动文件
当滚动文件没有指定时,则日志会记录到活动文件中,也就是触发滚动记录失败

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值