log4j2 日期换天后,今天的日志打印到了昨天的日志文件里面,rollover混乱

本文详细介绍了如何正确配置Log4j2的log4j2.xml文件,以实现日志文件的按日期滚动。通过调整Tomcat的配置,解决了日志文件在日期变更后重复写入的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

log4j2.xml配置规则

  <RollingRandomAccessFile name="File" fileName="${path}/${application}.log"
                                 filePattern="${path}/${application}-%d{yyyy-MM-dd}-%i.log">
            <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${pattern}"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
            <DefaultRolloverStrategy max="10"/>
        </RollingRandomAccessFile>

昨天的日志叫test.log,到了今天后,昨天的日志归档为test-20181015-1.log,今天的还是往test.log里面写。但是使用单独的tomcat部署后,发现日期翻天到20181016后,会生成一个test-20181015-2.log的日志,并且往里面写日志。

最后查了半天,不是log4j2的配置问题,而是tomcat加载的问题,可以参考

https://blog.youkuaiyun.com/qq_30264833/article/details/74518880

https://blog.youkuaiyun.com/u012892787/article/details/53156863

https://blog.youkuaiyun.com/lmmzsn/article/details/77990538

之前的配置为

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Context docBase="erar" path="" reloadable="true" useHttpOnly="true" sessionCookiePath="/" sessionCookieDomain=""/>

现在改为

      <Host name="localhost"  appBase=""
            unpackWARs="true" autoDeploy="true">
        <Context docBase="webapps/erar" path="/eara" reloadable="true" useHttpOnly="true" sessionCookiePath="/" sessionCookieDomain=""/>

,war还是对到webapps下,会解压到webapps的同级目录。问题到此解决,日志可以正常输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值