当前位置: 首页 > 知识库问答 >
问题:

java - 记录接口日志到数据库,业务处理进行回滚但依然保存日志?

陆斌
2024-07-17

目前系统对于接收外部接口请求,需要记录日志,返回处理结果时更新返回结果到日志表,同样向外部接口接口请求时,记录接口请求消息到日志,收到接口返回或调用失败时更新处理结果到日志表,要求业务处理失败时回滚数据,但仍然记录日志处理结果,请问如何优雅的处理?

共有1个答案

拓拔高畅
2024-07-17
  • 接收外部接口请求时,返回处理结果时更新返回结果到日志表,可以配置ResponseBodyAdvice,重写beforeBodyWrite方法,拿到返回结果存到日志。
    image.png
  • 向外部接口接口请求时,看你是用的是什么客户端工具,比如你使用okhttp那么就配置一个okhttp的拦截器,在拦截器里面记录日志。
    image.png
    如果使用的是spring更高层的restTemplate客户端可以配置下面这个拦截器
    image.png
 类似资料:
  • 使用log4j,我曾经有一个appender,它直接记录到数据库中的一个表。追加人如下: 这三个表是logging_event、logging_event_property和logging_event_exception。它们必须存在才能使用DBAppender。 根据我的理解,这意味着我绑定到这3个表以记录到数据库。 在internet上搜索解决方案时,涉及扩展类的结果很少,这在现阶段对我来说不

  • 我试图在一个基于spring的项目中创建记录器策略。 我面临的问题与滚动政策有关。已创建logfile.log并且工作正常,但未创建滚动文件rollingfile.log.%d{yyyy-MM-dd}.log。

  • 我想更改我的嵌入式数据库的日志记录。每次我打开一个连接,atm都会记录“......创建新的JDBC驱动程序连接到......”。在我的测试套件中,我为每个请求打开一个新的连接,现在有很多这样的消息。 我没有找到任何类型的日志级别。我只是可以设置PrintWriter。但是我想看看错误msgs。我在Spring之外运行这个作为常规单元测试。 有什么想法吗?

  • 我目前正在一个系统中工作,那里有多个laravel项目,利用空间日志进行activity日志记录。我想知道在一个地方(数据库)获取所有这些日志的最佳方法。我还想知道是否可以将空间日志存储在多个数据库中?

  • 我想知道如何在Spring批处理中使用MCD记录诸如和之类的内容。 下面是一些代码: Bootstrap.properties 这个文件有我的主要方法。当我用手动设置这里的字段时,我在日志中看到了它,但我不明白如何将我需要的实际信息放在这里。 如果有任何见解,我将不胜感激:)谢谢。

  • 问题内容: 因此,现在我需要创建并实现Python日志记录模块的扩展,该扩展将用于登录到我们的数据库。基本上,我们有几个python应用程序(它们都在后台运行)当前登录到文本文件的随机混合。这几乎使得不可能确定某个应用程序是否失败。 给我的问题是将所说的日志记录文本文件移动到oracle数据库。这些表已经定义好了,需要记录到什么地方,但是现在,我正在寻找添加另一个将记录到数据库的记录处理程序。 我