【问题标题】:Log4j2 create new log file if not existLog4j2 如果不存在则创建新的日志文件
【发布时间】:2017-12-08 21:51:12
【问题描述】:

我正在使用RollingRandomAccessFile appende 进行 log4j 日志记录,一切正常,

    <RollingRandomAccessFile name="xxx.FLT" fileName="${sys:xxx.log.path}FLT.log" filePattern="${sys:xxx.log.path}FLT.log.%i" append="true" immediateFlush="true" bufferSize="262144">
        <PatternLayout pattern="%d{MM-dd-yyyy HH:mm:ss,SSS} [%t] %level{WARN=WARNING, DEBUG=FINE, ERROR=SEVERE} %logger{36} - %convInfo %msg%n"/>
        <Policies>
            <SizeBasedTriggeringPolicy size="100MB"/>
        </Policies>
        <DefaultRolloverStrategy fileIndex="max" min="1" max="5" compressionLevel="3"/>
    </RollingRandomAccessFile>

在应用程序启动时会创建所有日志文件。如果一段时间后没有更新,我有另一个进程会从光盘中删除日志文件。

如果此进程删除了一个日志文件,它不会在新的日志事件中再次创建。

如果新日志事件发生时给定位置不存在,我想创建新日志文件

我知道应用程序重新启动时丢失的文件将被再次创建,但我想在日志事件发生时创建日志文件。

除了代码级别更改之外,我更喜欢进行配置级别更改。

【问题讨论】:

    标签: java file logging log4j log4j2


    【解决方案1】:

    您需要做的就是确保您删除的日志文件仅由 log4j 处理。这样您就永远不会丢失当前的日志文件。

    【讨论】:

    • 是的,我认为这是更好的方法,但这个过程不能在这里停止......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 2018-06-28
    • 2014-06-03
    • 2012-08-16
    • 1970-01-01
    • 2019-01-10
    相关资源
    最近更新 更多