【问题标题】:Multiple RollingFileAppenders writing to same file多个 RollingFileAppender 写入同一个文件
【发布时间】:2013-01-26 16:02:50
【问题描述】:

我有两个上下文在同一个 JVM 和 Tomcat 实例中运行,我想使用 logback RollingFileAppender 写入同一个日志文件。如果我使用相同的文件,logback RollingFileAppender 是否同步以防止出现任何问题?我担心文件的滚动将无法正常工作,并且某些日志会被覆盖。

logback 文档mention a prudent mode,但这表示性能下降,仅指从不同 JVM 记录到同一文件。我将在同一个 JVM 中运行。

这是我的 logback.xml 的示例。我想在每个上下文的两个单独的 WAR 文件中都有这个:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${catalina.base}/logs/portal.log</file>
      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <fileNamePattern>portal.%d.log</fileNamePattern>
    <maxHistory>30</maxHistory>
  </rollingPolicy>
  <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <maxFileSize>100MB</maxFileSize>
      </triggeringPolicy>  
      <encoder>
        <pattern>%d [%t] %-5p %c - %m%n</pattern>
      </encoder>
  </appender>

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

【问题讨论】:

    标签: java tomcat logging slf4j logback


    【解决方案1】:

    【讨论】:

    • 这是真的。我想知道是否有人以这种方式使用过 RollingFileAppender,或者它是否记录在我可能没见过的地方。
    【解决方案2】:

    我以这种方式使用 RollingFileAppender 并面临与您相同的问题。仅当您从配置中删除 &lt;file&gt; 元素时,它似乎才有效。但是,所有文件都被命名为例如portal.2013-12-03.log 等等。如果你能忍受,那就去吧。

    不过,我需要一个常量文件名,例如 portal.log 用于活动日志,因为对这些日志文件运行了一些监控。但我还没有发现这是怎么可能的。我猜Windows在这里也造成了一些麻烦......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      相关资源
      最近更新 更多