mirror of
https://github.com/samsonjs/grape_logging.git
synced 2026-03-25 08:55:47 +00:00
Add log for request headers (#28)
* log for request headers * add specification * fix spec * optimize readme
This commit is contained in:
parent
14f16c21c0
commit
57e6c0f395
3 changed files with 29 additions and 1 deletions
|
|
@ -51,7 +51,8 @@ You can include logging of other parts of the request / response cycle by includ
|
|||
logger: logger,
|
||||
include: [ GrapeLogging::Loggers::Response.new,
|
||||
GrapeLogging::Loggers::FilterParameters.new,
|
||||
GrapeLogging::Loggers::ClientEnv.new ]
|
||||
GrapeLogging::Loggers::ClientEnv.new,
|
||||
GrapeLogging::Loggers::RequestHeaders.new ]
|
||||
end
|
||||
|
||||
#### FilterParameters
|
||||
|
|
@ -60,6 +61,9 @@ The `FilterParameters` logger will filter out sensitive parameters from your log
|
|||
#### ClientEnv
|
||||
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
|
||||
|
||||
You can log to file and STDOUT at the same time, you just need to assign new logger
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ require 'grape_logging/loggers/base'
|
|||
require 'grape_logging/loggers/response'
|
||||
require 'grape_logging/loggers/filter_parameters'
|
||||
require 'grape_logging/loggers/client_env'
|
||||
require 'grape_logging/loggers/request_headers'
|
||||
require 'grape_logging/reporters/active_support_reporter'
|
||||
require 'grape_logging/reporters/logger_reporter'
|
||||
require 'grape_logging/timings'
|
||||
|
|
|
|||
23
lib/grape_logging/loggers/request_headers.rb
Normal file
23
lib/grape_logging/loggers/request_headers.rb
Normal 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
|
||||
Loading…
Reference in a new issue