logback 使用

1、maven:  只需引入

<dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
</dependency>

2、加载配置文件优先级(classpath下):logback-test.xml  >  logback.groovy   >  logback.xml ,以优先级高得配置为准

官方配置文件加载说明:

logback 使用

3、logback.xml 文件配置说明

<?xml version="1.0" encoding="UTF-8"?>

${a:-b} : 获取变量 a,设置默认值为b

${logReload:-false} : 获取变量logReload,如果获取不到,取默认值 false

scan : 是否监控配置文件的修改,设置为true, 修改配置文件,将更新日志容器

scanPeriod : 配合 san使用,扫描的间隔,必须有单位(seconds), 此处默认 60s

debug: 开启dubug模式,输出logback容器初始化过程


<configuration scan="${logReload:-false}" scanPeriod="${logReloadPeriod:- 60 seconds}" debug="${logDebug:-false}">
    加载配置文件 logback-config.properties, 所有变量都可以定义在properties文件中,可以${}获取
    <property resource="logback-config.properties"/>

  定义一个变量 变量名:logLayout, 值为value属性配置的值,可以${}获取
 <variable scope="context" name="logLayout" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80}(%L\\) : %msg%n"/>
    
    设置org.apache.kafka 包下的所有日志的级别 为kafkaLevel ,默认为INFO
    <logger name="org.apache.kafka" level="${kafkaLevel:-INFO}"/>
  root 日志级别

  <root level="${rootLevel:-INFO}"/>

   条件加载配置文件

 isDefined  logback 函数 ,后续后面,此处翻译为 如果定义了变量 appenderSelction ,则只需then中的逻辑   
    <if condition='isDefined("appenderSelction")'>
        <then>

            p也为函数,p("appenderSelction").equals("all") 意思为变量 appenderSelction == "all"
            <if condition='p("appenderSelction").equals("all")'>
                <then>

                   条件引入配置文件
                    <include resource="console_appender.xml"/>
                    <include resource="rolling_appender.xml"/>
                </then>
                <else>
                    <if condition='p("appenderSelction").equals("console")'>
                        <then>
                            <include resource="console_appender.xml"/>
                        </then>
                        <else>
                            <if condition='p("appenderSelction").equals("rolling")'>
                                <then>
                                    <include resource="rolling_appender.xml"/>
                                </then>
                                <else>
                                    <!-- 默认配置 -->
                                    <include resource="console_appender.xml"/>
                                </else>
                            </if>
                        </else>
                    </if>
                </else>
            </if>
        </then>
        <else>
            <include resource="console_appender.xml"/>
        </else>
    </if>
    <if condition='p("userDefault").equals("true")'>
        <then>
            <include optional="true" resource="default-log.xml"/>
        </then>
    </if>

</configuration>

 

https://logback.qos.ch/manual/configuration.html(其他配置)