Jetty访问日志写入.tmp文件

时间:2015-04-20 08:03:38

标签: java logging jetty logback

我正在观察的问题:

在一天的随机时间,日志开始转到.tmp文件 access.log6732547707051856.tmp(其日志从00:00:00到00:00:01,这是可以接受的,我猜是在发生翻转时),access.log6844458502795078.tmp是两个有日志的文件。

记录器继续登录最新的tmp文件。我观察到一种情况,它在大约早上6点开始写入.tmp文件并继续在那里写。 这将在下一个滚动处停止,即在00:00:00(午夜)停止,其中压缩了access.log文件。在此之后,.tmp文件仍然存在。

  1. 为什么临时文件不会消失?
  2. 为什么在翻滚未发生时,它会写入临时文件?
  3. 系统详情:

    我正在使用的Jetty版本:8.1.15

    我用

    实例化一个新的RequestLogHandler
    RequestLogImpl requestLog = new RequestLogImpl();
    requestLog.setFileName("logback-access.xml");
    requestLogHandler.setRequestLog(requestLog);
    

    logback-access.xml

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>/var/log/service/package/access-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
            <maxHistory>10</maxHistory>
        </rollingPolicy>
    

2 个答案:

答案 0 :(得分:1)

这是一个关于logback实现的漏洞,通常在滚动与其gzip /压缩层结合时出现。

答案 1 :(得分:0)

我的情况略有不同,因为我看到tmp文件带有logback classic 1.1.3而不是logback访问。

我正在使用具有最大文件大小的Rolling File Appender。请参阅下面的最终工作配置。

我的问题是由

之间的区别造成的
  <appender ..
    <file>${catalina.base}/logs/app-info.log</file>

  <appender ...
    <rollingPolicy ...
    <fileNamePattern>logs/app-info-%d{yyyy-MM-dd,UTC}-%i.log.gz</fileNamePattern>

注意两个文件路径之间的区别。 与<file>不同,<fileNamePattern>不以&#34; $ {catalina.base} /&#34;开头。

一旦我完成了两条路径,我就停止看到日志滚动时生成新的tmp文件。 Logback现在可以生成所需的log.gz文件。现有的tmp文件保持不变。

最终的工作配置。

<appender name="RollingFile"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${catalina.base}/logs/app-info.log</file>
    <!-- daily rollover -->
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${catalina.base}/logs/app-info-%d{yyyy-MM-dd,UTC}-%i.log.gz</fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy
            class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <!--  or whenever the file size reaches 100MB -->
            <maxFileSize>100MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
    ...
</appender>