Skip to content

Instantly share code, notes, and snippets.

@quinn
Forked from skwp/logger_middleware.rb
Last active October 10, 2020 04:42
Show Gist options
  • Save quinn/a7b020620a15c9a31b722c110da6ad38 to your computer and use it in GitHub Desktop.
Save quinn/a7b020620a15c9a31b722c110da6ad38 to your computer and use it in GitHub Desktop.
A request/response logger Rack middleware.
module Middleware
class Logger
def initialize(app)
@app = app
end
def call(env)
headers = env.select {|k,v| k.start_with? 'HTTP_'}
.map {|pair| [pair[0].sub(/^HTTP_/, ''), pair[1]].join(": ")}
.sort
request_params = env['rack.input'].read
Rails.logger "Request: #{env["REQUEST_METHOD"]} #{env["PATH_INFO"]} #{headers} #{request_params}"
@app.call(env).tap do |response|
status, headers, body = *response
Rails.logger "Response: #{status}"
Rails.logger "Headers: #{headers}"
Rails.logger "Response:"
# body.each do |line|
# @logger.info line
# end
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment