logback日誌的配置

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


    <!--

      Logger做爲日誌的記錄器,把它關聯到應用的對應的context上後,主要用於存放日誌對象,也能夠定義日誌類型、級別。

    Appender主要用於指定日誌輸出的目的地,目的地能夠是控制檯、文件、遠程套接字服務器、 MySQL、 PostreSQL、 Oracle和其餘數據庫、 JMS和遠程UNIX Syslog守護進程等。

    Layout 負責把事件轉換成字符串,格式化的日誌信息的輸出
    -->
    <jmxConfigurator/>
    <!--
    節點<property>   :用來定義變量值,它有兩個屬性name和value,經過<property>定義的值會被插入到logger上下文中,能夠使「${}」來使用變量。
    name: 變量的名稱
    value: 的值時變量定義的值
    -->
    <property name="LOG_FILE" value="${LOG_PATH}/myproject.log"/>

    <property name="ADDITIONAL" value="%X{REQUEST_ID} %X{REQUEST_TYPE} %X{TRACE_ID}"/>
    <property name="LOG_LEVEL_PATTERN" value="myproject %5p ${ADDITIONAL}"/>

    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>

    <!--
    子節點<appender>:負責寫日誌的組件,它有兩個必要屬性name和class。name指定appender名稱,class指定appender的全限定名
    -->
    <appender name="FILE"

              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--
        <encoder>:對日誌進行格式化

        1.<pattern>${FILE_LOG_PATTERN}</pattern>這個是什麼意思???
        -->
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <!--
        <file>:被寫入的文件名,能夠是相對目錄,也能夠是絕對目錄,若是上級目錄不存在會自動建立,沒有默認值。
        -->
        <file>${LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}</fileNamePattern>
        </rollingPolicy>
    </appender>

    <!--customer專用appender
     Appender主要用於指定日誌輸出的目的地
    -->
    <appender name="customerAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_PATH}/customer.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}/customer-%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>${ADDITIONAL} %d{HH:mm:ss.SSS} - %msg%n</pattern>
        </encoder>
    </appender>

    <!--logger  :日誌記錄器
    子節點<logger>:用來設置某一個包或具體的某一個類的日誌打印級別、以及指定<appender>。<logger>僅有一個name屬性,一個可選的level和一個可選的additivity屬性。
能夠包含零個或多個<appender-ref>元素,標識這個appender將會添加到這個logger
    name: 用來指定受此logger約束的某一個包或者具體的某一個類。
    level: 用來設置打印級別,大小寫無關:TRACE, DEBUG, INFO, WARN, ERROR, ALL和OFF,還有一個特俗值INHERITED或者同義詞NULL,表明強制執行上級的級別。 若是未設置此屬性,那麼當前logger將會繼承上級的級別。
additivity: 是否向上級logger傳遞打印信息。默認是true。同<logger>同樣,能夠包含零個或多個<appender-ref>元素,標識這個appender將會添加到這個logger。

    -->
    <logger name="com.pingan.haofang.myproject.customer.controller.CustomerController" level="INFO" additivity="false">
        <appender-ref ref="customerAppender"/>
    </logger>

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

</configuration>
相關文章
相關標籤/搜索