【问题标题】:slf4j, logback, the target compressed file named exist alreadyslf4j, logback, 目标压缩文件名已经存在
【发布时间】:2019-02-12 14:05:13
【问题描述】:

logback 1.1.5 + slf4j 1.7.4.

半夜翻车

 00:00:00,163 |-INFO in c.q.l.co.rolling.helper.RenameUtil - Renaming file [/opt/wls/appl/log/out.log] to [/opt/wls/appl/log/out.log1294410077875834.tmp]
 00:00:00,164 |-INFO in ch.qos.logback.core.rolling.helper.Compressor - ZIP compressing [/opt/wls/appl/log/out.log1294410077875834.tmp] as [/opt/wls/appl/log/archive/out/out-2018-09-04.10.zip]

但几秒钟后,翻转再次开始

 00:01:52,551 |-INFO in c.q.l.co.rolling.helper.RenameUtil - Renaming file [/opt/wls/appl/log/out.log] to [/opt/wls/appl/log/out.log1294522459498363.tmp]
 00:01:52,551 |-WARN in ch.qos.logback.core.rolling.helper.Compressor - The target compressed file named [/opt/wls/appl/log/archive/out/out-2018-09-04.0.zip] exist already.

WLS 的 2 个虚拟服务器上有 2 个应用程序。这两个应用程序都使用单独的主文件夹和您自己的 logback.xml。

logback.xml 是

<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${PRG_HOME}/logs/out/out-%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>100MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
    <encoder>
        <pattern>%d{dd/MM/yyyy HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n%ex</pattern>
    </encoder>
</appender>
<appender name="ASYNC_COMMON" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>32000</queueSize>
    <appender-ref ref="ROLLING" />
</appender>

我能做什么?

【问题讨论】:

    标签: logback slf4j logback-classic


    【解决方案1】:

    您可以尝试将&lt;prudent&gt;true&lt;/prudent&gt; 添加到您的RollingFileAppender。这应该允许多个 JVM 安全地写入同一个文件。

    不过,有一些restrictions 适用于prudent 模式。例如,不允许日志文件压缩。

    【讨论】:

    • 这不符合要求。日志应该被压缩。
    • 为每个应用程序添加了单独的 logback.xml。但仍然出现错误
    • 在文件“滚动”后使用简单的cron 作业来压缩文件不适合您吗? b/c 我没有办法同时使用 logback
    • 为什么应用程序开始使用单独的主文件夹和您自己的 logback.xml 后仍然出现错误?每个应用程序都使用您自己的主文件夹中的 logback.xml,因此将日志写入不同的文件。
    猜你喜欢
    • 2020-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-28
    • 2012-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多