如何禁用默认的 FileAppender logback rollingpolicy

Posted

技术标签:

【中文标题】如何禁用默认的 FileAppender logback rollingpolicy【英文标题】:how to disable default FileAppender logback rollingpolicy 【发布时间】:2014-10-09 14:25:59 【问题描述】:

请找到我的应用程序 logback FileAppender 配置。

     <appender name="ALERT-FILE" class="ch.qos.logback.core.FileAppender">
            <file>application-alert.log</file>
            <append>true</append>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                    <level>ERROR</level>
            </filter>
            <encoder>
                    <pattern>%dateMM/dd/yyyy HH:mm:ss %msg%n</pattern>
            </encoder>
    </appender>

    <logger name="ALERT" level="ERROR" additivity="false">
            <appender-ref ref="ALERT-FILE" />
    </logger>

我没有为 ALERT-FILE appender 配置任何滚动策略,但滚动仍在发生。我需要一个文件来记录一年中的所有错误等。 请帮忙。

谢谢 萨蒂亚吉特

【问题讨论】:

您的配置似乎正确,不能滚动;你确定你用更新的 logback 配置重新打包你的程序吗? 是的,我已经重建和测试了很多次。在同一个 logback.xml 文件中,我有另一个文件 appender,它具有常规日志记录以及 rollingPolicy。 【参考方案1】:

这可能是一个环境问题 - 您启动应用程序的环境(如 Linux)可能有一些日志处理例程,这些例程为位于 logs 目录中的文件提供自动滚动。

【讨论】:

【参考方案2】:

尝试将 rollingPolicy 部分添加到 appender 配置中

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>/var/log/tomcat/app.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>/var/log/tomcat/app.%dyyyy-MM-dd.log</FileNamePattern>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%dyyyy-MM-dd HH:mm:ss,SSS %-5level %logger35 - %msg%n</Pattern>
        </layout>
    </appender>

【讨论】:

以上是关于如何禁用默认的 FileAppender logback rollingpolicy的主要内容,如果未能解决你的问题,请参考以下文章

一文详细了解logback之日志打印FileAppender

log(A/B) = logA -logB

如何禁用百度默认通知

如何禁用 Android 游戏手柄默认控件?

log4j2 为 FileAppender 指定 tomcat 主目录的相对路径

如何更改/覆盖Vuetify js中禁用字段的默认颜色?