首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Log4j2覆盖过去一天的日志文件

Log4j2覆盖过去一天的日志文件
EN

Stack Overflow用户
提问于 2018-03-22 15:09:37
回答 4查看 2.5K关注 0票数 2

我使用的是Log4j2 ver2.3

log4j2.xml如下所示:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
    <RollingFile name="RollingFile"
                 fileName="${sys:catalina.base}/logs/catalina.${date:yyyy-MM-dd}.log"
                 filePattern="${sys:catalina.base}/logs/catalina.%d{yyyy-MM-dd}.log">
        <PatternLayout pattern="[TID=%X{TId}] %d{MMM dd, yyyy HH:mm:ss,SSS} %c %M:%L %p: %m%n"/>
        <TimeBasedTriggeringPolicy modulate="true" />
    </RollingFile>
</Appenders>
<Loggers>
    <Root level="DEBUG" >
        <AppenderRef ref="RollingFile" />
    </Root>
</Loggers>
</Configuration>

直到第二天,当前一天的日志被当前的一些日志覆盖时,所有工作都很好。

例: catalina.2018-03-21.log昨天(3月21日)很好,但是今天被一些从2018-03-22年的日志覆盖,而catalina.2018-03-22.log包含了今天(3月22日)的其余日志。

有什么想法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-03-24 19:28:39

Log4j 2.3有点老了,在2015-09-09发布,差不多3岁.所以,尝试使用更新的版本;2.11.0版本是最新的版本,发布于2018-03-11。

更新:继续使用Log4j 2.3,您可以破坏您的需求。其中一个选项可以是对fileName属性使用静态值。例如.../catalina.log.../catalina.current.log等。

票数 2
EN

Stack Overflow用户

发布于 2018-03-22 15:36:25

试一试

代码语言:javascript
运行
复制
BasicConfigurator.resetConfiguration()

在BasicConfigurator.configure()之后使用记录器的方法中

票数 0
EN

Stack Overflow用户

发布于 2019-10-04 15:28:46

尝试向您的文件模式(%i)添加一个自动增量变量。这对我来说很好。

代码语言:javascript
运行
复制
filePattern="${sys:catalina.base}/logs/catalina.%d{yyyy-MM-dd}.%i.log"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49432150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档