log4j2编写的部分.gz文件
Partial .gz file written by log4j2
我有以下日志配置。
<RollingRandomAccessFile name="RollingReqAppender"
fileName="/usr/test/req.log"
filePattern="/usr/test/req.log.%d{yyyy-MM-dd-HH}.%i.gz"
immediateFlush="true" append="true">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS Z}%m%n</Pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="500 MB"/>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
</Policies>
</RollingRandomAccessFile>
当日志滚动时(基于时间或大小),它被 gzip 压缩。压缩文件需要一些时间(几秒到几分钟,具体取决于负载)。问题是该文件被 gzip 到位,并且在 gzip 时,部分 gzip 文件存储在与最终 gzip 文件同名的同一文件夹中。例如:/usr/test/req.log.2017-01-03-02.1.gz
这会给试图处理部分文件的文件使用者带来问题。我希望能够区分部分 gzip 文件和完整的 gzip 文件。例如,我想设置一个配置,当文件被 gzip 压缩时,它被写成一个不同的名称,例如:/usr/test/req.log.2017-01-03-02.1.temp.gz
,一旦它被完全 gzip 压缩,名称将更改为最终名称 /usr/test/req.log.2017-01-03-02.1.gz
我怎样才能做到这一点?
Log4j2 目前的行为与您描述的不同。所以没有配置来实现这一点。
请在 Log4j2 JIRA 问题跟踪器上提出功能请求。实现这一点的最快方法是提供带有单元测试的补丁。
此功能已添加到 log4j2 版本 2.9.0 https://issues.apache.org/jira/browse/LOG4J2-1766
我有以下日志配置。
<RollingRandomAccessFile name="RollingReqAppender"
fileName="/usr/test/req.log"
filePattern="/usr/test/req.log.%d{yyyy-MM-dd-HH}.%i.gz"
immediateFlush="true" append="true">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS Z}%m%n</Pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="500 MB"/>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
</Policies>
</RollingRandomAccessFile>
当日志滚动时(基于时间或大小),它被 gzip 压缩。压缩文件需要一些时间(几秒到几分钟,具体取决于负载)。问题是该文件被 gzip 到位,并且在 gzip 时,部分 gzip 文件存储在与最终 gzip 文件同名的同一文件夹中。例如:/usr/test/req.log.2017-01-03-02.1.gz
这会给试图处理部分文件的文件使用者带来问题。我希望能够区分部分 gzip 文件和完整的 gzip 文件。例如,我想设置一个配置,当文件被 gzip 压缩时,它被写成一个不同的名称,例如:/usr/test/req.log.2017-01-03-02.1.temp.gz
,一旦它被完全 gzip 压缩,名称将更改为最终名称 /usr/test/req.log.2017-01-03-02.1.gz
我怎样才能做到这一点?
Log4j2 目前的行为与您描述的不同。所以没有配置来实现这一点。
请在 Log4j2 JIRA 问题跟踪器上提出功能请求。实现这一点的最快方法是提供带有单元测试的补丁。
此功能已添加到 log4j2 版本 2.9.0 https://issues.apache.org/jira/browse/LOG4J2-1766