<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--
configuration:根節點,包含三個屬性scan、scanPeriod和debug,
scan如果設置爲true,表示配置文件有變化時會被重新加載;
scanPeriod設置監測配置文件是否有修改的時間間隔;
debug設置爲true表示將打印出logback內部日誌信息,實時查看logback運行狀態
-->
<!--
<configuration scan="true" scanPeriod="60 seconds" debug="false">
-->
<!--
contextName:子節點,用來設置上下文, 每個logger都關聯到logger上下文,默認上下文名稱爲default
-->
<!--
property:用來定義變量值,有兩個屬性name和value,name是變量的名字,value是變量對應的值
-->
<!--
timestamp:獲取時間戳字符串,有兩個屬性key和datePattern,key標識此<timestamp>的名字,datePattern設置將當前時間轉換爲字符串
-->
<!--
logger:用來設置某一個包或具體的某一個類的日誌打印級別、以及指定<appender>
-->
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!--
appender:負責寫日誌的組件,有兩個必要屬性name和class,name指定appender名稱,class指定appender的全限定名
-->
<destination>127.0.0.1:4560</destination>
<!-- 日誌輸出編碼 -->
<encoder charset="UTF-8"
class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<timestamp>
<timeZone>UTC</timeZone>
</timestamp>
<pattern>
<pattern>
{
"logLevel-0524": "%level",
"serviceName-0524": "${springAppName:-}",
"pid-0524": "${PID:-}",
"thread-0524": "%thread",
"class-0524": "%logger{40}",
"rest-0524": "%message"
}
</pattern>
</pattern>
</providers>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="LOGSTASH"/>
<appender-ref ref="CONSOLE"/>
</root>
</configuration>