【问题标题】:Logback add Error appender made the others appenders not workLogback 添加错误附加程序使其他附加程序不起作用
【发布时间】:2020-12-13 19:14:21
【问题描述】:

这是我的 logback.xml;

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <property name="LOGS" value="./logs"/>

    <appender name="Console"
              class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %d{ISO8601} %highlight(%-5level) [%blue(%t)] %yellow(%C{1.} [%M#%L]) %X{serialID}: %msg%n%throwable
            </Pattern>
        </layout>
    </appender>

    <appender name="RollingFile"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOGS}/info-file.log</file>
        <encoder
                class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%d %highlight(%-5level) [%blue(%t)] %yellow(%C{1.} [%M#%L]) : %msg%n%throwable</Pattern>
        </encoder>
    </appender>

    <appender name="DexLogFile"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOGS}/dex.log</file>
        <encoder
                class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%d %highlight(%-5level) [%blue(%t)] %yellow(%C{1.} [%M#%L]) : %msg%n%throwable</Pattern>
        </encoder>
    </appender>

    <appender name="ErrorLogFile"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOGS}/error.log</file>
        <encoder
                class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%d %highlight(%-5level) [%blue(%t)] %yellow(%C{1.} [%M#%L]) : %msg%n%throwable</Pattern>
        </encoder>
    </appender>

    <!-- LOG everything at INFO level -->
    <root level="info">
        <appender-ref ref="Console"/>
        <appender-ref ref="RollingFile"/>
    </root>


    <logger name="com.ssca" level="info" additivity="false">
        <appender-ref ref="DexLogFile"/>
    </logger>

    <logger name="ur.company" level="trace" additivity="false">
        <appender-ref ref="Console"/>
    </logger>

    <logger name="ur.company" level="info" additivity="false">
        <appender-ref ref="RollingFile"/>
    </logger>

    <logger name="ur.company" level="error" additivity="false">
        <appender-ref ref="ErrorLogFile"/>
    </logger>

</configuration>

我只是想要一个明确的错误日志文件,所以我尝试将错误重定向到error.log,所以我添加了这些行:

 <logger name="ur.company" level="error" additivity="false">
        <appender-ref ref="ErrorLogFile"/>
 </logger>

没有这个代码,一切都很好。但是,一旦我添加了这些行,RollingFile appender 和 Console appender 就不再工作了......

这就像日志级别的问题,但我试图删除可加性,也不起作用。

我已经阅读了 logback 网站,但没有找到任何帮助。


我使用了lombok @slf4j注解,会不会导致这个冲突?

【问题讨论】:

  • 标签内添加 Appender Ref。这会工作
  • @NilayTiwari 我确实添加了它们
  • 这行得通吗?
  • 不,不行,我在开头添加Console & RollingFile Appenders。

标签: java spring-boot logback spring-logback


【解决方案1】:

好吧,我只是将过滤器添加到错误附加程序中,并将 appender-ref 从错误级别记录器放入信息级别记录器。代码如下:

 <appender name="ErrorLogFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <file>${LOGS}/error.log</file>
       ........
 </appender>

<logger name="ur.company" level="INFO" additivity="false">
        <appender-ref ref="RollingFile"/>
        <appender-ref ref="ErrorLogFile"/>
</logger>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多