<?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>