Add log for request headers (#28)

* log for request headers

* add specification

* fix spec

* optimize readme
This commit is contained in:
Kun Liu 2016-05-18 21:33:07 +08:00 committed by Adrian Serafin
parent 14f16c21c0
commit 57e6c0f395
3 changed files with 29 additions and 1 deletions

View file

@ -51,7 +51,8 @@ You can include logging of other parts of the request / response cycle by includ
logger: logger, logger: logger,
include: [ GrapeLogging::Loggers::Response.new, include: [ GrapeLogging::Loggers::Response.new,
GrapeLogging::Loggers::FilterParameters.new, GrapeLogging::Loggers::FilterParameters.new,
GrapeLogging::Loggers::ClientEnv.new ] GrapeLogging::Loggers::ClientEnv.new,
GrapeLogging::Loggers::RequestHeaders.new ]
end end
#### FilterParameters #### FilterParameters
@ -60,6 +61,9 @@ The `FilterParameters` logger will filter out sensitive parameters from your log
#### ClientEnv #### ClientEnv
The `ClientEnv` logger will add `ip` and user agent `ua` in your log. The `ClientEnv` logger will add `ip` and user agent `ua` in your log.
#### RequestHeaders
The `RequestHeaders` logger will add `request headers` in your log.
### Logging to file and STDOUT ### Logging to file and STDOUT
You can log to file and STDOUT at the same time, you just need to assign new logger You can log to file and STDOUT at the same time, you just need to assign new logger

View file

@ -6,6 +6,7 @@ require 'grape_logging/loggers/base'
require 'grape_logging/loggers/response' require 'grape_logging/loggers/response'
require 'grape_logging/loggers/filter_parameters' require 'grape_logging/loggers/filter_parameters'
require 'grape_logging/loggers/client_env' require 'grape_logging/loggers/client_env'
require 'grape_logging/loggers/request_headers'
require 'grape_logging/reporters/active_support_reporter' require 'grape_logging/reporters/active_support_reporter'
require 'grape_logging/reporters/logger_reporter' require 'grape_logging/reporters/logger_reporter'
require 'grape_logging/timings' require 'grape_logging/timings'

View file

@ -0,0 +1,23 @@
module GrapeLogging
module Loggers
class RequestHeaders < GrapeLogging::Loggers::Base
HTTP_PREFIX = 'HTTP_'.freeze
def parameters(request, _)
headers = {}
request.env.each_pair do |k, v|
next unless k.to_s.start_with? HTTP_PREFIX
k = k[5..-1].split('_').each(&:capitalize!).join('-')
headers[k] = v
end
{ headers: headers }
end
end
end
end