我想记录任何外部 API 调用
headers
、body
、params
进行自动记录,我正在使用 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)
希望这对您有帮助。
上述选项如何运作?格式化程序过程仅接受 |log, logger|。
使用|_,_,_,payload|,payload为零