SpringBoot开发——整合Logbook进行HTTP API请求响应日志输出
文章目录
- 1. 简介
-
- 依赖管理
- 2. 实战案例
-
- 2.1 基本用法
- 2.2 结合Logback日志记录到文件
- 2.3 自定义核心类Logbook
- 2.4 自定义日志输出Sink
- 2.5 与RestTemplate集成
1. 简介
记录HTTP API请求响应日志对于监控、调试和性能优化至关重要。它帮助开发者追踪API的使用情况,包括请求来源、参数、响应状态码及耗时等,从而快速定位问题、分析用户行为及评估系统性能。在生产环境中,合理的日志记录策略能及时发现并预警潜在问题,减少故障影响。
在本篇文章中 我将介绍一款非常强大的Logbook库,它可为不同的客户端和服务器端技术提供完整的请求和响应日志。它允许开发人员记录应用程序接收或发送的任何 HTTP 流量。这可用于日志分析、审计或调查流量问题。
Logbook实用非常的简单,它针对spring boot提供了starter,根据你当前spring boot使用的版本引入不同版本的Logbook即可。
依赖管理
<properties>
<!--如果你使用的springboot2.x版本请引入2.16.0版本-->
<logbook.version>2.16.0</java.version>
<!--如果你使用的springboot3.x版本请引入3.9.0版本-->
<logbook.version>3.9.0</java.version>
</properties>
<dependency>
<groupId>org.zalando</groupId>
<artifactId>logbook-spring-boot-starter</artifactId>
<version>${logbook.version}</version>
</dependency>
注意:上面使用的版本说明。
2. 实战案例
根据上面,引入了相关的依赖后,还需要进行如下的配置
logging:
level:
org.zalando.logbook.Logbook: TRACE
调整Logbook日志级别为TRACE。
2.1 基本用法
根据上面配置的日志级别,接下来你可以不用做任何的配置,随意访问一个接口就能在控制台看到非常详细的信息
// 接口
@GetMapping("/hello")
public String Hello(){
return "hello";
}
访问上面的接口,控制台输出如下:
这里看到了详细的请求/响应信息。
输出格式配置
以上日志是以json
格式输出,也是默认格式,它还支持:http
,curl
,splunk
格式。
比如我们设置成如下配置: