如何使用 Rails 语义记录器记录整个请求(标头、正文等)

问题描述 投票:0回答:2

我想记录任何外部 API 调用

headers
body
params
进行自动记录,我正在使用
rails_semantic_logger
,是否有任何配置和自定义可以帮助我记录这些详细信息?

ruby-on-rails ruby rubygems rails-semantic-logger
2个回答
1
投票

在您的

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)

希望这对您有帮助。


0
投票

上述选项如何运作?格式化程序过程仅接受 |log, logger|。

使用|_,_,_,payload|,payload为零

© www.soinside.com 2019 - 2024. All rights reserved.