java – Spring Boot – 如何在一个地方记录所有具有异常的请求和响应?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Spring Boot – 如何在一个地方记录所有具有异常的请求和响应?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1750字,纯文字阅读大概需要3分钟。
内容图文
![java – Spring Boot – 如何在一个地方记录所有具有异常的请求和响应?](/upload/InfoBanner/zyjiaocheng/716/2abc7ec9a7094ebbb4b2fd13959c5099.jpg)
我正在用弹簧靴做休息api.我需要使用输入参数(使用方法,例如GET,POST等),请求路径,查询字符串,此请求的相应类方法,以及此操作的响应,成功和错误来记录所有请求.
举个例子:
成功要求:
http://example.com/api/users/1
日志应该看起来像这样:
{
HttpStatus: 200,
path: "api/users/1",
method: "GET",
clientIp: "0.0.0.0",
accessToken: "XHGu6as5dajshdgau6i6asdjhgjhg",
method: "UsersController.getUser",
arguments: {
id: 1
},
response: {
user: {
id: 1,
username: "user123",
email: "user123@example.com"
}
},
exceptions: []
}
或者请求错误:
http://example.com/api/users/9999
日志应该是这样的:
{
HttpStatus: 404,
errorCode: 101,
path: "api/users/9999",
method: "GET",
clientIp: "0.0.0.0",
accessToken: "XHGu6as5dajshdgau6i6asdjhgjhg",
method: "UsersController.getUser",
arguments: {
id: 9999
},
returns: {
},
exceptions: [
{
exception: "UserNotFoundException",
message: "User with id 9999 not found",
exceptionId: "adhaskldjaso98d7324kjh989",
stacktrace: ...................
]
}
我希望请求/响应成为单个实体,在成功和错误情况下都包含与此实体相关的自定义信息.
在春天实现这一目标的最佳做法是什么,可能是过滤器?如果是的话,你能提供具体的例子吗?
(我已经使用了@ControllerAdvice和@ExceptionHandler,但正如我所提到的,我需要在单个位置(和单个日志)处理所有成功和错误请求).
解决方法:
不要写任何拦截器,滤波器,组件,方面等,这是一个非常常见的问题,已经解决了很多次. Spring Boot有一个名为Actuator的模块,提供开箱即用的HTTP请求日志记录.有一个端点映射到/ trace(SB1.x)或/ actuator / httptrace(SB2.0),它将显示最近100个HTTP请求.您可以自定义它以记录每个请求,或写入数据库.要获得所需的端点,您需要执行器springboot依赖项,并且还要“查找”您正在寻找的端点,并可能设置或禁用它的安全性.
此外,此应用程序将在何处运行?你会使用PaaS吗?例如,主机提供商Heroku提供请求记录作为其服务的一部分,您无需进行任何编码.
内容总结
以上是互联网集市为您收集整理的java – Spring Boot – 如何在一个地方记录所有具有异常的请求和响应?全部内容,希望文章能够帮你解决java – Spring Boot – 如何在一个地方记录所有具有异常的请求和响应?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。