在 Spring Boot 中集中记录带有异常的请求和响应
开发 REST API 时,捕获所有请求和响应的全面日志至关重要,包括输入参数、类方法和异常。这种集中式日志记录可以实现快速调试和审核。
最佳实践方法
Spring Boot 为这项任务提供了一个有效且简单的解决方案:Actuator 模块。 Actuator 提供了一个端点(/trace 或 /actuator/httptrace),默认记录最后 100 个 HTTP 请求。
自定义
记录每个请求并定制端点根据您的具体需求,您可以:
其他注意事项
其他托管提供商(例如 Heroku)通常将请求日志记录作为服务提供,从而无需自定义代码。
示例
在 Spring Boot 中配置 Actuator 以进行请求和响应日志记录应用程序:
dependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator' } # Security configuration (optional) security { httpBasic {} headers { hsts { enabled = true maxAge = 31536000L # 1 year } } }
输出
/trace 端点生成类似于所需格式的 JSON 响应:
{ "timestamp": 1656211869816, "message": "Successful request", "path": "/api/users/1", "method": "GET", "status": 200, "timeTaken": 1397 }
如果例外:
{ "timestamp": 1656211972854, "message": "UserNotFoundException: User with id 9999 not found", "path": "/api/users/9999", "method": "GET", "status": 404, "timeTaken": 2063, "exception": "UserNotFoundException", "error": "User with id 9999 not found" }
以上是如何集中记录 Spring Boot REST API 请求、响应和异常?的详细内容。更多信息请关注PHP中文网其他相关文章!