03、Java Logstash_Kibana-使用 Logback 向 Logstash 中输出日志

使用 Logback 向 Logstash 中输出日志

  • 1.修改 pom.xml

  • 2.导入 logback.xml

  • 3.新建启动类

  • 需求:随意新建一个项目把输出到控制台的日志信息也输出到 Logstash 中。

1.修改 pom.xml

我们首先需要添加logstash-logback-encoder依赖到我们的pom.xml文件中。这个库能够帮助我们将Logback日志转换为JSON格式,并发送到Logstash。

不同版本的logstash-logback-encoder会有不同的特性表现:

  • 6.x版本:这个版本在输出日志到控制台的同时,不会显示额外的日志信息。
  • 5.x版本:该版本在启动时会在控制台显示logback.xml配置文件的加载信息。

根据你的需要,可以选择合适的版本。下面是在pom.xml中添加依赖的示例:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.6.RELEASE</version>
</parent>

<dependencies>
    <dependency>
        <groupId>net.logstash.logback</groupId>
        <artifactId>logstash-logback-encoder</artifactId>
        <version>6.6</version>
    </dependency>
    <!-- 其他依赖... -->
</dependencies>

请确保项目中其他依赖与此项兼容,避免发生冲突。

2.导入 logback.xml

接下来,我们需要在项目中添加一个logback.xml配置文件。这个文件通常放在src/main/resources目录下。这个配置文件定义了Logback的行为,包括如何格式化日志、输出日志等。

logback.xml文件中,我们将配置一个appender,它负责将日志数据编码并发送到Logstash。

<configuration>
    <appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>logstash-host:logstash-port</destination>
        <encoder class="net.logstash.logback.encoder.LogstashEncoder" />
    </appender>

    <root level="INFO">
        <appender-ref ref="stash" />
    </root>
</configuration>

在配置文件中,需要将<destination>标签的内容替换为你的Logstash服务器的地址和端口。

3.新建启动类

最后一步是创建你的启动类。如果你是在Spring Boot环境下工作,这个类将标记为@SpringBootApplication,并且包含main方法来启动应用。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

启动你的应用后,Logback会根据你在logback.xml中的配置将日志发送到Logstash。这样,不仅可以在控制台查看日志输出,同时也能在Logstash中查看,进而在Elasticsearch中进行日志数据分析。

总结以上步骤,我们通过修改pom.xml添加必要的依赖,导入了Logback的配置文件logback.xml,并新建了一个启动类来启动Spring Boot应用。
这样,我们的应用就可以把日志同时输出到控制台和Logstash了。记得调整Logstash的配置,确保它能够接收并正确处理来自Logback的日志数据。