1.下载Logstash 7.3.1,解压,在config目录创建springboot-log.conf,

input{
	tcp {
        mode => "server"
        host => "0.0.0.0"
        port => 8888
        codec => json_lines
	}
}

output{
	#elasticsearch{
	#    hosts=>["127.0.0.1:9200"]
	#    index => "springboot"
    #}
	stdout{
		codec => rubydebug
	}
}

2.启动Logstash,

bin\logstash.bat -f config/springboot-log.conf

Linux环境:

bin/logstash -f config/springboot-log.conf

上述命令在jdk8下运行的。如果jdk 17 ,可能报错
3.创建spring boot应用,并在resources中创建logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml" />
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>



    <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>localhost:8888</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
    </appender>

    <root level="info">
        <appender-ref ref="console" />
        <appender-ref ref="logstash" />
    </root>
</configuration>

4.在pom.xml中增加依赖,

        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>7.0</version>
        </dependency>

5.添加controller,并在其中增加接口,

package cn.edu.tju.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;

@RestController
public class TestController {
    protected final static Logger log = LoggerFactory.getLogger(TestController.class);
    @RequestMapping("/test")
    public String test() {
        log.info("this is a log from spring boot!");
        return  new Date().toLocaleString();
    }
}

6.启动应用,并访问http://localhost:8085/test,
在Logstash的输出可以看到日志输出:
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐