在Play Framework中为Play Framework设置MaxBackupIndex和MaxFileSize

时间:2014-08-27 19:21:11

标签: logging playframework logback

我正在使用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并重新开始,依此类推。

2 个答案:

答案 0 :(得分:0)

尝试这样的事情:

<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代替。

答案 1 :(得分:0)

检查RollingFileAppender here

的logback-documentation

可能需要添加编码器:

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