我想要记录任何外部API调用headersbodyparams以自动记录,我正在使用rails_semantic_logger,是否有任何配置和定制可以帮助我记录这些详细信息?

推荐答案

在您的config/initializers/semantic_logger.rb中添加以下配置

SemanticLogger.configure do |config|
  # existing configuration

  config.add_appender(
    io: STDOUT,
    level: :debug,
    formatter: proc { |_, _, _, payload|
      "#{payload[:method]} #{payload[:url]}\n" \
      "Headers: #{payload[:headers].inspect}\n" \
      "Body: #{payload[:body]}\n" \
      "Params: #{payload[:params].inspect}\n"
    }
  )
end

现在您可以按照下面提到的方式登录

# Make an API call
response = HTTParty.get('https://api.example.com/users', headers: { 'Authorization' => 'Bearer token' })

# Log the API call
logger.debug('External API call', method: response.request.http_method, url: response.request.last_uri.to_s, headers: response.request.headers, body: response.request.body, params: response.request.params)

我希望这会对你有所帮助.

Ruby-on-rails相关问答推荐

如何在嵌套路由中使用Ruby on rails多态关联

我try 使用Ruby on Rails7创建一个Carbon 足迹计算器.但我无法保存和用户S对象

Rails版本7.1.2:当验证失败且控制器发送422状态时,JS停止工作

会话控制器中的某种问题

Rails:比枚举更惯用的排序/可比较列表方法?

Turbo-Rails:如何将 Turbo Frame 添加到 `application.html.erb`?

'elseif' 还存在吗?

使用brew 软件安装了 elasticsearch,但找不到配置文件

如何在 Ruby on Rails 中创建一个锚点并重定向到这个特定的锚点

控制器规格与请求规格?

使用 ActiveRecord 3 / Arel 查找单个记录的最佳方法?

form_tag 是否与 Simple_form 一起使用?

如何从邮箱中获取域

在 RoR 中引用同一个表的多个外键

Rails HABTM - 正确删除关联

如何仅使用 PostgreSQL 创建简单的模糊搜索?

如何为 rspec 设置 ENV 变量?

:javascript haml 标签中的内联Ruby ?

Ruby/Rails CSV 解析,UTF-8 中的无效字节序列

我什么时候需要在 Rails 中重新启动服务器?