springboot中不同日志输出级别的影响与联系(DEBUG, INFO, WARN, ERROR)

时间:2025-03-18 21:28:47

日志等级从低到高分别是

  • DEGUB
  • INFO
  • WARN
  • ERROR
如下, 是对日志输出等级进行配置
 <?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
    <property name="LOG_PATTERN" value="%date{HH:mm:} [%thread] %-5level %logger{36} - %msg%n" />

    <!-- 定义日志存储的路径,不要配置相对路径 -->
    <property name="FILE_PATH" value="F:/springBootLogs/course01/demo.%d{yyyy-MM-dd}.%" />

    <!-- 控制台输出日志 -->
    <appender name="CONSOLE" class="">
        <encoder>
            <!-- 按照上面配置的LOG_PATTERN来打印日志 -->
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <!--每天生成一个日志文件,保存15天的日志文件。rollingFile是用来切分文件的 -->
    <appender name="FILE"
              class="">
        <rollingPolicy class="">
            <fileNamePattern>${FILE_PATH}</fileNamePattern>
            <!-- keep 15 days' worth of history -->
            <maxHistory>15</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="">
                <!-- 日志文件的最大大小 -->
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>

        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>
    <!-- project default level -->
    <logger name=".course01" level="WARN" />

    <!-- 日志输出级别 -->
    <root level="DEBUG">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>

    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>

    <root level="WARN">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>

    <root level="ERROR">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
</configuration>
经过实验, 在对日志输出等级进行配置的时候, 有以下几个性质
  • 当其中任意一个等级有文件输出的时候, 无论如何配置, 都会输出文件
  • 在配置项目默认日志等级<logger name=".course01" level="WARN" />的时候, 会输出该等级以上的所有需要输出的内容。如若这样配置:
<logger name=".course01" level="WARN" />

<root level="ERROR">
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="FILE" />
</root>

则会在console 和 文件中都写入信息, 但写入的信息的等级只有WARN以上的, 即 WARN, ERROR等级。