1.安裝elk
https://www.cnblogs.com/xuaa/p/10769759.html
2.idea創建springboot項目
File -> New -> Project
3.選擇Spring Initializr,點擊Next
4.直接Next
5.選擇Web,勾選Web,點擊Next
6.直接點擊Finish創建完成
7.在上一步創建的項目pom.xml中添加以下依賴
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
</dependency>
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.11</version>
</dependency>
8.在resources目錄下創建logback.xml,添加以下內容
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>172.29.22.151:9000</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>
<root level="INFO">
<appender-ref ref="LOGSTASH"/>
<appender-ref ref="CONSOLE"/>
</root>
</configuration>
注:172.29.22.151位logstash服務所在的服務器IP地址,9000為logstash服務config目錄下logstash-elasticsearch.conf中配置的端口號
9.驗證
創建controller目錄下新增DemoController.java,內容如下:
package com.example.elkdemo.controller;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
/**
* TODO
*
* @author berger.xu
* @date 2019/4/26
*/
@Slf4j
@RestController
@RequestMapping(value = "/demo")
public class DemoController {
@GetMapping(value = "/test")
@ResponseBody
public void test(){
log.debug("message0");
log.info("message1");
log.warn("message2");
log.error("message3");
}
}
在瀏覽器中訪問http://localhost:8088/demo/test;注:其中8088為這個demo服務的端口,加debug級別的日志打印是為了驗證logback.xml中配置的INFO日志級別是否生效。
控制台打印了日志內容如下:
elasticsearch head中的日志內容如下:
kibana中的日志內容如下: