Java Logstash

    科技2025-06-17  10

    使用 Logback 向 Logstash 中输出日志

    1.修改 pom.xml2.导入 logback.xml3.新建启动类

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

    1.修改 pom.xml

    ogstash-logback-encoder 就是转码后向 logstash 中输入的依赖注意: 1.如果导入的是 6.x 版本不会在控制台看见任何额外日志信息 2.如果导入的是 5.x 版本会在控制台看见 logback.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.3</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>

    2.导入 logback.xml

    把logback.xml文件放到 resources 中 logback.xml 文件内容如下,红色部分表示向 logstash 中输出日志信息红色中< destination>配置的是 logstash 配置文件中 input 里面 host 和 post 的信息 <?xml version="1.0" encoding="UTF-8"?> <!--该日志将日志级别不同的 log 信息保存到不同的文件中 --> <configuration> <include resource="org/springframework/boot/logging/logback/defaults.xml" /> <springProperty scope="context" name="springAppName" source="spring.application.name" /> <!-- 日志在工程中的输出位置 --> <property name="LOG_FILE" value="${BUILD_FOLDER:-build}/${springAppName}" /> <!-- 控制台的日志输出样式 --> <property name="CONSOLE_LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){mag enta} %clr(---){faint} %clr([%15.15t]){faint} %m%n${LOG_EXCEPTION_CONVERS ION_WORD:-%wEx}}" /> <!-- 控制台输出 --> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> <!-- 日志输出编码 --> <encoder> <pattern>${CONSOLE_LOG_PATTERN}</pattern> <charset>utf8</charset> </encoder> </appender> <!-- logstash 远程日志配置--> <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <destination>192.168.8.140:4560</destination> <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" /> </appender> <!-- 日志输出级别 --> <root level="DEBUG"> <appender-ref ref="console" /> <appender-ref ref="logstash" /> </root> </configuration>

    3.新建启动类

    新建 com.dqcgm.DemoApplication @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class,args); } }
    Processed: 0.015, SQL: 8