java—如何在SpringBoot应用程序中通过logback.xml为两个appender设置两个不同的日志级别?

4uqofj5v  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(425)

我对logback.xml配置有一些问题。我希望控制台appender只写入控制台信息事件,而文件appender写入调试级别的文件。我当前的配置如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="LOG_PATH" value="applogs"/>

    <appender name="FILE_DAILY" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <fileNamePattern>${LOG_PATH}/News_App_MRM.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- keep 30 days' worth of history capped at 3GB total size -->
            <maxHistory>30</maxHistory>
            <totalSizeCap>3GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
        </encoder>
    </appender>
    <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>

    <root level="info">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FILE_DAILY"/>
    </root>

</configuration>
8xiog9wr

8xiog9wr1#

你必须这样定义一个记录器

<logger name="org.hibernate" level="INFO" additivity="false">
    <appender-ref ref="STDOUT"/>
</logger>

这样,来自org.hibernate的所有日志都将被记录在信息级别。
然后可以为每个记录器指定一个附加器。

相关问题