logbook 简介
很多人可能没有接触过 logbook
,但它的确是一个很好用的日志框架。引用官网的介绍
Logbook 是一个可扩展的 Java 库,可以为不同的客户端和服务器端技术启用完整的请求和响应日志记录。它通过以下方式满足了特殊需求:
- 允许 Web 应用程序开发人员记录应用程序接收或发送的任何 HTTP 流量 ,这意味着只要是 HTTP 请求它都可以选择记录日志
- 以一种易于持久化和分析的方式。这对于传统的日志分析、满足审计要求或调查个别历史流量问题非常有用。
具体介绍可以参考 链接: logbook 官网
使用logbook
这边主要讲解logbook
与springBoot2
的整合
logbook
官方提供了 logbook-spring-boot-starter
简单使用
引入依赖
<!--按照官方要求 为了 Spring 5 / Spring Boot 2 向后兼容,需要导入如下依赖-->
<dependency>
<groupId>org.zalando</groupId>
<artifactId>logbook-servlet</artifactId>
<version>3.9.0</version>
<classifier>javax</classifier>
</dependency>
<dependency>
<groupId>org.zalando</groupId>
<artifactId>logbook-spring-boot-starter</artifactId>
<version>3.9.0</version>
</dependency>
添加配置
logging:
level:
org.zalando.logbook: TRACE
写个测试接口就可以看到日志了
{
"origin": "remote", //remote 代表远程请求,local 代表本地发出的请求 例如 Feign
"type": "request",
"correlation": "b2b2b8e449d7b650", //请求唯一id
"protocol": "HTTP/1.1",
"remote": "0:0:0:0:0:0:0:1",
"method": "GET",
"uri": "http://localhost:8080/consumer",
"headers": {
"accept": ["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"],
"accept-encoding": ["gzip, deflate, br"],
"accept-language": ["zh-CN,zh;q=0.9"],
"cache-control": ["max-age=0"],
"connection": ["keep-alive"],
"host": ["localhost:8080"],
//...省略
}
}
选择日志风格
logbook
提供了多种日志风格,默认是 JSON
,在 application.yml
中通过以下配置选择
logbook:
format:
style: json #默认值,可选值还有 curl、http、splunk
转载: 原文