当前位置: 首页 > 知识库问答 >
问题:

在Log4j2中,使用RollingFile appender,如何为滚动的文件名添加唯一的id?

郎宏逸
2023-03-14

我正在使用一个同时具有时间(每日)和大小触发器策略的RollingFile附加器。filePattern(用于在翻转时重命名文件)包含:

filePattern="app-${sys:node}-%d{yyyyMMdd}-%i" 

例如,具有:

  • APP-20180205-1.log
  • APP-20180205-2.log
  • APP-20180205-3.log

和log4j2当前写入的内容,假设:/tmp/app.log

共有1个答案

孟凯泽
2023-03-14

您可以不使用UUID,而是使用具有更具体时间分辨率的更具体的日期-时间文件模式,如下所示:

filePattern="logs/log4j2-demo-%d{yyyy-MM-dd-HH-mm-ss}-%i.log

当满足您的时间/触发器策略时,它将创建一个新文件,该文件具有更具体的日期-时间标记,该标记应始终是唯一的,根据您指定的时间分辨率。

 类似资料:
  • 有办法得到滚动文件名吗?我写了自定义插件,信号文件滚动,但我需要得到滚动文件的文件名。我的插件从java代码发出信号: 自定义插件:

  • 我在webapp中使用以下log4j RollingFile appender。 使用时,当日志滚动时,旧文件将重命名为具有索引号的文件名(使用%i指定),因此所有旧文件都应重命名并保留。 我通过以下代码以编程方式滚动日志。 但是,在7次滚动之后,现有文件将被删除(未根据指定的重命名),并在新文件中继续日志。 这里有什么问题?

  • 问题内容: 我习惯在普通的log4j上使用。现在,我切换到,无法使附加程序正常工作。 下面的附加程序可以正常工作。但是永远不会创建的日志文件。为什么? 问题答案: 该标记缺少属性。

  • 据我所知,log4j2中的RollingFileAppender不会在指定的时间(比方说-在一小时结束时)回滚,而是在超过时间阈值后到达的第一个日志事件时回滚。 有没有一种方法可以触发一个事件,一方面会导致文件滚动,另一方面不会附加到日志中(或者会附加一些无关紧要的东西,比如空字符串)?

  • 我正在使用log4j2。 我想创建一个RollingFileAppender,它每天旋转日志文件。在应用程序启动之前,日志文件的名称是未知的(日志文件名是从应用程序配置组装而来的)。 这就是为什么我需要在运行时添加RollingFileAppender。 我有以下代码: 问题是这段代码完全没有改变什么。未向配置中添加追加器和记录器。以编程方式创建的“文件记录器”不可用。 执行上述代码后,我使用此代

  • 问题内容: 我正在用Java写一个小的xml转换层。我通过Web服务接收xml,对其进行修改,然后将修改后的xml发送到另一个系统。然后,我等待响应并将响应返回给原始呼叫者。 我要记录我收到的请求,我发送的请求,我收到的响应以及我发送的请求。基本上,我想记录图中每个箭头所在的xml。 我的问题是RollingFileAppender。我尝试以10MB滚动,有时会滚动,有时不滚动。如果滚动几次,然后