logback控制台显示不遵守阈值过滤器

时间:2015-07-22 17:49:33

标签: logback

我有一个包含以下内容的logback.xml文件:

<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <param name="Target" value="System.out"/>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>INFO</level>
    </filter>
    <encoder>
        <pattern>%date %-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
    </encoder>
</appender>

<appender name="debugfile" class="ch.qos.logback.core.rolling.RollingFileAppender" >
    <file>debugFile.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>debugFile.%d{yyyy-MM-dd}.log</fileNamePattern>
        <MaxHistory>30</MaxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>%date %-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
    </encoder>
</appender>

<appender name="infofile" class="ch.qos.logback.core.rolling.RollingFileAppender" >
    <file>infoFile.log</file>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>INFO</level>
    </filter>
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
        <fileNamePattern>infoFile_%i.log</fileNamePattern>
        <minIndex>1</minIndex>
        <maxIndex>3</maxIndex>
    </rollingPolicy>
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <maxFileSize>1MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
        <pattern>%date %-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
    </encoder>
</appender>

<appender name="warnfile" class="ch.qos.logback.core.rolling.RollingFileAppender" >
    <file>infoFile.log</file>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>WARN</level>
    </filter>
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
        <fileNamePattern>warnFile_%i.log</fileNamePattern>
        <minIndex>1</minIndex>
        <maxIndex>3</maxIndex>
    </rollingPolicy>
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <maxFileSize>1MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
        <pattern>%date %-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
    </encoder>
</appender>

<!-- Setup the Root category -->
<root>
    <appender-ref ref="console"/>
    <appender-ref ref="debugfile"/>
    <appender-ref ref="infofile"/>
<appender-ref ref="warnfile"/>
</root>

我希望它只显示INFO级别日志或更高。所以,我添加了ThresholdFilter并将其级别设置为INFO。这样做适用于RollingFileAppender(其中一个包含INFO和更高版本,另一个包括DEBUG和更高版本)。

由于控制台语句继续包含DEBUG级别语句,因此没有区别。谁能告诉我为什么?

1 个答案:

答案 0 :(得分:0)

我不能保证这会起作用,实际上没有测试设置。
在你的。

之后添加元素
<logger name="ch.qos.logback" level="INFO">
    <appender-ref ref="console" />
</logger>

这应该只将引用的appender的日志记录级别修改为所需的级别。

有关此处思考的更多信息,请参阅Logback docs