ruby-on-rails 如何使用Rails语义日志记录器记录整个请求(头部、主体等)

b0zn9rqh  于 2023-05-19  发布在  Ruby
关注(0)|答案(1)|浏览(85)

我想记录任何外部API调用headersbodyparams被自动记录,我使用的是rails_semantic_logger,是否有任何配置和自定义,将帮助我记录这些细节?

wpcxdonn

wpcxdonn1#

在您的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)

我希望这对你有帮助。

相关问题