# api-logging-starter
**Repository Path**: star-lee-lab/api-logging-starter
## Basic Information
- **Project Name**: api-logging-starter
- **Description**: 用于 API 请求/响应日志记录的 Spring Boot Starter
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-09-23
- **Last Updated**: 2025-09-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# API Logging Starter
一个基于Spring Boot的智能API日志记录starter,可以自动记录HTTP请求和响应的详细信息,支持自定义配置需要记录的请求头。
## 功能特性
- ✅ 自动记录HTTP请求信息(方法、URL、参数、请求体)
- ✅ 自动记录HTTP响应信息(结果、执行时间)
- ✅ 异常信息记录
- ✅ 可配置的请求头记录
- ✅ 支持GET、POST、PUT、DELETE等所有HTTP方法
- ✅ 基于AOP实现,无侵入式集成
- ✅ 完整的YAML配置支持,IDE自动提示
## 快速开始
### 1. 添加依赖
首先,在项目的`pom.xml`中添加 repositories
```xml
jitpack.io
https://jitpack.io
```
然后,在项目的`pom.xml`中添加依赖:
```xml
com.gitee.star-lee-lab
api-logging-starter
0.0.1
```
### 2. 基础使用(零配置)
添加依赖后即可使用,默认配置会自动生效:
```java
@RestController
@RequestMapping("/api")
public class UserController {
@GetMapping("/users")
public List getUsers() {
// 自动记录请求和响应日志
return userService.findAll();
}
@PostMapping("/users")
public User createUser(@RequestBody User user) {
// 自动记录请求体、响应结果等信息
return userService.save(user);
}
}
```
### 3. 自定义配置
在`application.yml`中自定义配置:
```yaml
api:
logging:
# 需要记录的HTTP请求头列表 可以根据自己项目实际需要进行配置,此处仅为示例
target-headers:
- authorization
- X-Real-IP
- X-Forwarded-Host
- X-Forwarded-Port
- ls-auth
- os
- devicename
- version
- citycode
```
### 默认值
如果不配置`target-headers`,默认记录空集合,即不记录任何请求头。
## 日志输出示例
### 请求日志示例
```
================ Request Start ================
===> POST: /api/users
>>> Request Param: {}
>>> Request Body: {"name":"张三","age":25,"email":"zhangsan@example.com"}
===Headers=== authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
===Headers=== X-Real-IP: 192.168.1.100
===Headers=== os: Android
===Headers=== version: 1.2.3
================ Request End ================
```
### 成功响应日志示例
```
================ Response Start ================
===Result=== User(id=1, name=张三, age=25, email=zhangsan@example.com)
<=== POST: /api/users(15ms)
================ Response End ================
```
### 异常响应日志示例
```
================ Response Failed ================
===Error=== 用户已存在
<=== POST: /api/users(8ms)
================ Response Failed ================
```
## 支持的HTTP方法
本starter自动支持以下注解标记的控制器方法:
- `@GetMapping`
- `@PostMapping`
- `@PutMapping`
- `@DeleteMapping`
- `@RequestMapping`
## 最佳实践
### 1. 生产环境配置建议
```yaml
api:
logging:
target-headers:
- X-Real-IP # 记录真实IP用于审计
- authorization # 记录认证信息(注意安全)
- version # 记录客户端版本
```
## 版本更新
### v0.0.1
- 初始版本发布
- 支持基本的请求/响应日志记录
- 支持YAML配置自定义请求头输出到日志
## 技术实现
- **使用Java17**:Java版本
- **基于Spring AOP**:无侵入式实现
- **使用Jackson**:JSON序列化
- **支持Spring Boot 2.x**:广泛兼容
- **自动配置**:开箱即用
## 贡献
欢迎提交Issue和Pull Request来帮助改进这个项目。
## 许可证
Apache License 2.0
## 联系方式
- 项目主页:https://gitee.com/star-lee-lab/api-logging-starter
- 问题反馈:https://gitee.com/star-lee-lab/api-logging-starter/issues
---
**注意**:在生产环境中使用前,请确保了解日志记录可能带来的安全性和性能影响,并根据实际需求进行适当配置。