Logback的配置文件,你看懂了吗

发布时间:2024年01月18日

参考文章一
参考文章二
在这里插入图片描述

  • configuration是XML文件根元素。
  • rootlogger可视为同一类,都是日志设置;root是日志的全局设置,而logger可以单独设置某一些包和类的日志输出。
  • appender配置日志格式、如何过滤、文件处理等。
  • propertycontextName元素,分别用来定义变量和应用上下文名称,非必须。

配置Logback的方式:

  1. 通过Spring Boot配置文件配置Logback
  2. 通过XMl文件自定义Logback配置
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <contextName>logback-spring-demo-dev</contextName>
    <property name="pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/>
    <property name="pattern-color" value="%yellow(%d{yyyy-MM-dd HH:mm:ss.SSS}) [%thread] %highlight(%-5level) %green(%logger{50}) - %highlight(%msg) %n"/>
    <property name="LOG_HOME" value="logs"/>

    <!-- 控制台输出 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern}</pattern>
        </encoder>
    </appender>

    <!-- 控制台输出-带颜色 -->
    <appender name="CONSOLE-WITH-COLOR" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern-color}</pattern>
        </encoder>
    </appender>

    <!-- 文件输出 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/all.%d.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>30</maxHistory>
        </rollingPolicy>

        <encoder>
            <pattern>${pattern}</pattern>
        </encoder>
    </appender>


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

    <logger name="com.example.logbackdemo.IndexAction" level="info" additivity="false">
        <appender-ref ref="CONSOLE"/>
    </logger>

</configuration>
  • 两种属性:contextNameproperty
  • 三个节点:appenderrootlogger

以下是配置文件的各个部分的详细解释:

  1. <contextName>:定义了日志上下文的名称,这里被设置为logback-spring-demo-dev。这个名称通常用于区分不同的应用或环境。

  2. <property>:定义了一些属性,可以在配置文件中重复使用。在这个配置文件中定义了三个属性:

    • pattern:定义了日志的输出格式,包括时间戳、线程名、日志级别、日志发生的位置和消息。
    • pattern-color:定义了带颜色的日志输出格式,用于控制台输出,以便更容易区分不同级别的日志。
    • LOG_HOME:定义了日志文件的存储目录,这里被设置为logs
  3. <appender>:设置日志渲染效果,name表示该渲染器的名字,class表示使用的输出策略,常见的有控制台输出策略(ConsoleAppender)和文件输出策略(FileAppenderRollingFileAppender)。
    这里配置了三种appender:

    • CONSOLE:标准的控制台输出,使用PatternLayoutEncoderpattern属性来格式化日志。
    • CONSOLE-WITH-COLOR:也是控制台输出,但使用带颜色的pattern-color属性来格式化日志。
    • FILE:定义了文件输出,使用RollingFileAppender,它支持基于时间和文件大小的滚动策略。
      • <rollingPolicy>:是FILE appender的一部分,定义了日志文件的滚动策略:
        • fileNamePattern:定义了滚动日志文件的命名模式。
        • SizeAndTimeBasedFNATP:定义了基于文件大小和时间的触发策略,其中maxFileSize设置了单个文件的最大大小。
        • maxHistory:定义了要保留的最大历史记录天数。
  4. <root>:设置了根日志记录器(全局日志)的级别以及它使用的appender(CONSOLE-WITH-COLORFILE)。

日志级别:ERROR -> WARN -> INFO -> DEBUG

如配置日志级别为INFO,则INFO及以上级别的日志会输出,而比INFO级别低的日志(debug日志)不会被输出。

  1. <logger>:用来设置某一个类或者某个包的日志输出级别、以及关联的appender。additivity设置为false,意味着这个记录器不会将日志事件传递给根记录器。它只使用CONSOLE appender进行日志记录,而不使用带颜色的版本。

总结:这个Logback配置文件定义了日志输出到控制台和文件的方式。它包括了不同的appender,即CONSOLECONSOLE-WITH-COLORFILE。文件输出使用了rollingFileAppender,以按时间滚动的方式记录日志文件。根日志级别被设置为INFO,并指定了输出到控制台的格式。同时,com.example.logbackdemo.IndexAction包的日志级别被设置为INFO,并将其输出到控制台。

文章来源:https://blog.csdn.net/qq_41638851/article/details/135673710
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。