我正在使用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>
在应用程序启动时,将创建所有日志文件。如果一段时间后没有更新,我还有另一个从光盘中删除日志文件的进程。
如果此进程删除了日志文件,则不会在新的日志事件中再次创建。
我想创建新的日志文件,如果在新的日志事件发生时在给定的位置不存在
我知道应用程序重启时会再次创建丢失的文件,但我想在发生日志事件时创建日志文件。
除了代码级别更改之外,我更倾向于进行配置级别更改。
答案 0 :(得分:0)
您需要做的就是确保删除日志文件仅由log4j处理。这样,您永远不会丢失当前的日志文件。