SpringBoot 项目 整合 td-agent
时间: 2024-05-16 12:12:31 浏览: 152
SpringBoot 项目整合
可以通过使用 Logback-Flume-Appender 或 Logback-Gelf-Appender 将 SpringBoot 项目日志发送到 Fluentd,然后再将 Fluentd 转发到 td-agent。具体步骤如下:
1. 在 pom.xml 文件中添加以下依赖:
```
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>6.6</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.4</version>
</dependency>
<dependency>
<groupId>ch.qos.logback.contrib</groupId>
<artifactId>logback-gelf</artifactId>
<version>0.13.0</version>
</dependency>
<!-- 或者 -->
<dependency>
<groupId>ch.qos.logback.contrib</groupId>
<artifactId>logback-flume-appender</artifactId>
<version>0.9.3</version>
</dependency>
```
2. 在 application.yml 文件中添加以下配置:
```
logging:
level:
root: info
com.example: debug # 设置日志级别
file:
name: myapp.log # 日志文件名
pattern: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n" # 日志输出格式
# Logback-Gelf-Appender 配置
logback:
gelf:
host: localhost # Fluentd 地址
port: 12201 # Fluentd 端口号
version: "1.1" # GELF 版本号
facility: "myapp" # 应用名称
extractStackTrace: true # 提取堆栈信息
# Logback-Flume-Appender 配置
logback:
appender:
type: ch.qos.logback.classic.net.SocketAppender
remoteHost: localhost # Fluentd 地址
port: 5140 # Fluentd 端口号
includeCallerData: true # 包含调用者信息
encoder:
type: ch.qos.logback.core.encoder.LayoutWrappingEncoder
layout:
type: ch.qos.logback.classic.PatternLayout
pattern: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n" # 日志输出格式
```
3. 在 SpringBoot 启动类上加上 `@EnableAsync` 注解,以支持异步日志记录。
4. 部署 Fluentd 和 td-agent,并在 td-agent 中配置 Fluentd 的输入和输出插件。
5. 启动 SpringBoot 项目,并查看 td-agent 日志,确认日志已经被正确地转发到了 td-agent。
阅读全文