標籤:服務 ref inf host info end 網路傳輸 div 依賴
好處:項目日誌寫到logstash,然後發送到Elasticsearch,可以方便查看搜尋日誌,還可以做報表分析。
logstash是一個資料擷取工具,有多種渠道,比如檔案,tcp,udp等,如果是採集記錄檔,那麼需要在存放檔案所在的伺服器上,啟動一個logstash服務,不方便快速部署;而採用tcp/udp的方式相對來講就簡單一點,只需要將資料發送到logstash服務就行。這裡主要講一下網路傳輸的方式。
首先,無論是tcp還是udp,都需要在maven裡添加依賴:
<dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>4.8</version></dependency>
這裡我們使用的是logback日誌架構
TCP
<appender name="tcp_logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <destination>192.168.10.11:2233</destination> <!-- encoder必須配置,有多種可選 --> <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" /> </appender>
注意:class使用的是LogstashTcpSocketAppender,支援tcp傳輸
UDP
<appender name="udp_logstash" class="net.logstash.logback.appender.LogstashSocketAppender"> <host>192.168.10.11</host> <port>3333</port> </appender>
注意:class使用的是LogstashSocketAppender,支援udp傳輸
最後在<root>裡,添加相應的引用就行,例如:
<root level="warn"> <appender-ref ref="udp_logstash" /> <appender-ref ref="console" /> <appender-ref ref="info" /> <appender-ref ref="warn" /> <appender-ref ref="error" /> </root>
到此,我們代碼裡的配置就完成了,啟動程式之後,會將相應level+的日誌發送到logstash。
java項目日誌寫到logstash-TCP/UDP