当前位置: 首页 > 知识库问答 >
问题:

日志添加错误追加器使其他追加器无法工作

赫连瀚
2023-03-14

下面是我的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>
 <logger name="ur.company" level="error" additivity="false">
        <appender-ref ref="ErrorLogFile"/>
 </logger>

共有1个答案

仇炜
2023-03-14

好吧,我只是在错误追加器中添加filter,并将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>
 类似资料:
  • 我正在尝试通过代码添加一个自定义的附加器,该附加器应该记录一些包。所有的工作都使用以下代码: 所以简而言之..正如您所看到的,如果之前没有定义追加器,我正在创建一个追加器。然后我为org.test创建一个记录器(如果没有添加的话),并将appender添加到这个记录器中。 多谢了。

  • 我试图用log4j的JPA Appender保存一些日志事件,我在这里遵循了教程(JPAAppender)。 但是当我测试记录器时,我得到一些关于log4j的log4j错误/警告。特性: 假设问题在log4j。属性文件,有帮助吗??谢谢

  • 我使用的是logback,日志位置将根据平台的不同而不同(请参见我的另一个相关问题:Java桌面应用程序中日志文件位置的最佳实践是什么?)。 如何告诉logback使用从平台确定的日志文件?我不能在logback.xml中硬编码日志文件,因为每个平台的日志文件都不同。 如何添加具有基于平台的位置的文件追加器。 如何让此文件追加器保留logback.xml中定义的设置。

  • 当用户从用户界面更改配置时,我想动态地重新加载log4j附加器(RollingFileAppender)。 我已经通过编程删除了追加器,并用新的配置值创建了新的追加器。在此之后,appender broked MaxBackupIndex和MaxFileSize无法正常工作。但是如果我更改了文件名(日志文件名),那么它可以正常工作。 能帮我解决这个问题吗?

  • 问题内容: 我编写此代码是为了使用HTML中的元素将图像上传到本地Apache Web服务器。该记录为不为空,但为什么是完全空的? 这是我在本地网络服务器上的 将记录所有PHP文件的代码行,而不是返回的结果 问题答案: 仅记录formData对象时,它始终返回空,因为您无法记录formData。 如果您只需要在发送前对其进行记录,则可以使用它来获取formData对象中的条目

  • 我目前正在对一个相对较大的项目的log4j配置进行微调。目前,我还没有为所有可能创建日志项的位置配置日志级别。 我想让log4j拥有某种回退appender来记录没有为其配置其他appender的所有消息。例如,如果我有一条日志消息: 登录: a. b. c. d: WARN 并且有一个附加程序,配置为用级别INFO记录包a. b. c,然后输出记录到该附加程序。 但是,如果我没有配置append