java - Logback 仅在文件大小上滚动

标签 java logback

我正在使用 logback 1.0.13。我希望我的日志文件仅根据文件大小滚动。如果这需要 2 小时或 2 年,我不在乎。我不知道该怎么做。我的 appender 配置如下:

<appender name="serverFaultFile"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>/folder/to/log/file.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>/folder/to/log/file-%d{yyyy-MM}.%i.log</fileNamePattern>
        <MaxHistory>2</MaxHistory>
        <cleanHistoryOnStart>true</cleanHistoryOnStart>
        <timeBasedFileNamingAndTriggeringPolicy
            class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>10MB</maxFileSize>
            <MaxHistory>9</MaxHistory>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
    <encoder>
        <pattern>[%p] [%d{ISO8601}] [%c] [%m]%n</pattern>
    </encoder>
</appender>

此解决方案每月滚动一次,这不是我需要的。我尝试完全删除 -%d{dateformat} 修饰符,但后来甚至从未创建/记录过该文件。我尝试了修饰符 %G 和 %yyyy,但月度与 logback 显然允许我得到的一样细粒度(参见 bug report )。我错过了什么?

最佳答案

你想要一个 SizeBasedTriggeringPolicy:http://logback.qos.ch/manual/appenders.html#SizeBasedTriggeringPolicy ,可能与 FixedWindowRollingPolicy 结合使用。

之前是评论,不确定它是否值得自己的回答,但在这里。 ;)

关于java - Logback 仅在文件大小上滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28509787/

相关文章:

java - java中如何通过文件名获取完整目录

java - 如何检测 Mac OsX 10.7 上是否下载了 JavaVM

java - 带有 CompletableFuture 的 MDC 记录器

hadoop - Gradle 用 logback 替换传递依赖 log4j

java - 使用 SAX 解析器解析 XML 数据并将其保存到 mysql localhost (JAVA) 的速度慢

java - 如何在递增/递减字母字符时保持换行符不变?

java - Logback - 根据大小滚动文件

java - 停止自定义 logback 异步附加程序的正确方法

java - 如何同时迭代这些列表?

java - 如何使用 logback 关闭 STDOUT 形式的 Soap 消息 CXF