【问题标题】:Setting MaxBackupIndex and MaxFileSize in logger.xml for Play Framework在 logger.xml 中为 Play Framework 设置 MaxBackupIndex 和 MaxFileSize
【发布时间】:2014-10-21 12:31:33
【问题描述】:

我正在使用 Play 2.2.2。我已经使用命令行覆盖了默认的 logger.xml

play debug "~run -Denvironment=%1 -Dhttps.port=9443 -Dlogger.resource=C:\Users\jmatthews\Documents\git\beam-ui\conf\playLoggerConfig-local.xml"

这是playLoggerConfig-local.xml的内容:

<configuration>

    <conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" />

    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>c:\tempBeam\server.log</file>
        <encoder>
            <pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern>
        </encoder>
    </appender>

    <logger name="play" level="INFO" />
    <logger name="application" level="INFO" />

    <root level="ERROR">
        <appender-ref ref="FILE" />
    </root>

</configuration>

我需要做的是指定一个 MaxFileSize 和 MaxBackupIndex,这样当 server.log 达到一定大小时,它会将其备份为 server.log.1 并重新开始等等。

【问题讨论】:

    标签: logging playframework logback


    【解决方案1】:

    试试这样的:

    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>c:\tempBeam\server.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <fileNamePattern>server.log.%i</fileNamePattern>
            <!-- Keeps server.log.X with X from 1 to 5 -->
            <minIndex>1</minIndex>
            <maxIndex>5</maxIndex>
        </rollingPolicy>
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <!-- Max file size: 30MB -->
            <maxFileSize>30MB</maxFileSize>
        </triggeringPolicy>
        <encoder>
            <!-- (...) -->
        </encoder>
    </appender>
    

    另请注意,logger.resource 通常用于加载类路径中存在的文件(例如:Play 项目中的conf 目录)。如果不是这种情况,您应该改用logger.file

    【讨论】:

    • 我进行了这些更改并在 Play 中启动了项目并收到以下错误:09:45:06,842 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@7:79 - no applicable action for [rollingPolicy], current ElementPath is [[configuration][appender][rollingPolicy]] 和其他四个关于 fileNamePattern、minIndex、maxIndex 和 triggeringPolicy 的错误
    • 我做了这个更新&lt;appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"&gt;,它启动时没有错误,但我没有看到预期的行为。当日志文件达到 MaxFileSize 时,它​​会继续写入超过该大小的同一日志文件。
    【解决方案2】:

    查看 RollingFileAppender here 的 logback 文档

    可能你需要添加一个编码器:

    <encoder>
        <pattern>%d{ISO8601} %m%n</pattern>
    </encoder>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-28
      • 2020-12-08
      • 1970-01-01
      • 1970-01-01
      • 2016-11-06
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多