簡體   English   中英

如何在文件 logback spring 引導中排除錯誤日志級別

[英]How to exclude error log level in a file logback spring boot

我有一個正在實現日志的 spring 引導應用程序(spring-boot-starter-parent --> 2.3.0.RELEASE)。

基本上我想要實現的是我有 2 個日志文件,其中一個 bridgeError.log 僅包含錯誤消息,而 bridge.log 將包含錯誤級別之外的所有日志級別,因為它被記錄在brideError.log 文件中。

我能夠創建 2 個日志文件brideError.log,其中僅包含錯誤消息,但問題是 bridge.log 還包含錯誤消息。

請在下面找到我的 logback-spring.xml 配置:

<configuration>

    <property name="HOME_LOG" value="logs/bridge.log"/>
    <property name="HOME_LOG_ERROR" value="logs/bridgeError.log"/>


    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoders are assigned the type
             ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="FILE-ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${HOME_LOG}</file>

        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>

        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>logs/archived/bridge.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <!-- each archived file, size max 10MB -->
            <maxFileSize>10MB</maxFileSize>
            <!-- total size of all archive files, if total size > 20GB, it will delete old archived file -->
            <totalSizeCap>20GB</totalSizeCap>
            <!-- 60 days to keep -->
            <maxHistory>60</maxHistory>
        </rollingPolicy>

        <encoder>
            <pattern>%d %p %c{1.} [%t] %m%n</pattern>
        </encoder>
    </appender>


    <appender name="FILE-ROLLING-ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${HOME_LOG_ERROR}</file>

        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>

        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>logs/archived/bridgeError.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <!-- each archived file, size max 10MB -->
            <maxFileSize>10MB</maxFileSize>
            <!-- total size of all archive files, if total size > 20GB, it will delete old archived file -->
            <totalSizeCap>20GB</totalSizeCap>
            <!-- 60 days to keep -->
            <maxHistory>60</maxHistory>
        </rollingPolicy>

        <encoder>
            <pattern>%d %p %c{1.} [%t] %m%n</pattern>
        </encoder>
    </appender>

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
            </Pattern>
        </layout>
    </appender>
  
        <logger name="com.dummy.package" level="debug" additivity="false">
            <!--        <appender-ref ref="FILE-ROLLING"/>-->
            <appender-ref ref="CONSOLE"/>
        </logger>


    <!--    <root level="error">
            <appender-ref ref="FILE-ROLLING"/>
            &lt;!&ndash;  <appender-ref ref="CONSOLE"/>&ndash;&gt;
        </root>-->

    <logger name="com.dummy.package" level="DEBUG">
        <appender-ref ref="FILE-ROLLING"/>
        <appender-ref ref="FILE-ROLLING-ERROR"/>
    </logger>

</configuration>

是否可以排除 bridge.log 文件中的錯誤消息?

提前致謝

您可以為此目的使用級別過濾器

<filter class="ch.qos.logback.classic.filter.LevelFilter">
  <level>ERROR</level>
  <onMatch>DENY</onMatch>
  <onMismatch>ACCEPT</onMismatch>
</filter>

文檔: http://logback.qos.ch/manual/filters.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM