使用java logback打印两次日志消息

问题描述 投票:0回答:2

我在 SpringBoot 应用程序中使用 logback 打印日志。当我检查日志文件时,我发现所有日志消息都打印了两次!真是太奇怪了。 是的,我找到了一些与我的问题类似的答案。但也许它们不是我想要的。

这是我的logback.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <property name="LOG_HOME" value="${user.home}/app/logs"/>
    <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}-[%thread]-%-5level-%logger{50}: %msg%n</pattern>
        </encoder>
    </appender>
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${LOG_HOME}/cloud-sync-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- each file should be at most 10MB, keep 3 days worth of history, but at most 1GB -->
            <maxFileSize>10MB</maxFileSize>
            <maxHistory>3</maxHistory>
            <totalSizeCap>1GB</totalSizeCap>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>
    <appender name ="ASYNC" class= "ch.qos.logback.classic.AsyncAppender">
        <discardingThreshold >0</discardingThreshold>
        <queueSize>256</queueSize>
        <includeCallerData>true</includeCallerData>
        <appender-ref ref ="FILE"/>
    </appender>
    <root level="INFO">
        <appender-ref ref="Console"/>
        <appender-ref ref="FILE"/>
        <appender-ref ref="ASYNC"/>
    </root>
</configuration>

如何确保日志消息仅出现一次。谢谢你。

spring-boot logging logback
2个回答
1
投票

因为你为

ASYNC
添加了
FILE
INFO

请根据您的要求删除其中一项。


0
投票

万一有人想实现相同的目标但保留所有根附加程序。

将Springboot应用程序记录器配置为“INFO”和additivity =“false”,您可以将任意数量的appender添加到根目录中,并且它们不会复制横幅。

<logger name="org.springframework.boot.SpringApplication" level="INFO" additivity="false" />
© www.soinside.com 2019 - 2024. All rights reserved.