11

我有以下logback.xml文件:

<configuration>

    <!--Daily rolling file appender -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>/usr/share/tomcat6/logs/api.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>/usr/share/tomcat6/logs/api/api.%d{yyyy-MM-dd}.gz</FileNamePattern>
        </rollingPolicy>
        <encoder>
          <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>

      <root level="debug">
        <appender-ref ref="FILE" />
        <appender-ref ref="STDOUT" />
      </root>
</configuration>

我的日志文件工作正常。然而,后面的文件方面不是。它不是压缩文件并将其移动到 api 文件夹中,而是将其放在同一目录中并将其重命名为

api.log(string of numbers).tmp

例如

api.log849916939395200.tmp

有谁知道为什么会这样?

4

2 回答 2

9

只需从 appender 中删除文件标签。使用这样的东西,

<appender name="contentDeliveryLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <!-- daily rollover -->
    <fileNamePattern>${ICEX_HOME}/logs/content-delivery.%d{yyyy-MM-dd}.log</fileNamePattern>
      <!-- keep 1 days' worth of history -->
      <maxHistory>30</maxHistory>
  </rollingPolicy>
  <encoder>
    <pattern>%d [%thread] %-5level %logger{36} H:${HOSTNAME} - SC:%X{optionalParam} %msg%n</pattern>
  </encoder>
</appender>

这对我有用,正如 logback 文档所建议的那样

于 2014-10-27T13:38:33.693 回答
4

我有类似的问题。要解决此问题,请将模式更改为 /usr/share/tomcat6/logs/api/api.%d{yyyy-MM-dd}.%i.gz.

你最后错过了%i

于 2014-01-13T07:31:10.510 回答