Merge pull request #26 from scauglog/master

add logger for client ip and ua
This commit is contained in:
Adrian Serafin 2016-04-19 09:24:25 +02:00
commit 14f16c21c0
3 changed files with 23 additions and 8 deletions

View file

@ -50,11 +50,16 @@ You can include logging of other parts of the request / response cycle by includ
use GrapeLogging::Middleware::RequestLogger, use GrapeLogging::Middleware::RequestLogger,
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 ]
end end
#### FilterParameters
The `FilterParameters` logger will filter out sensitive parameters from your logs. If mounted inside rails, will use the `Rails.application.config.filter_parameters` by default. Otherwise, you must specify a list of keys to filter out. The `FilterParameters` logger will filter out sensitive parameters from your logs. If mounted inside rails, will use the `Rails.application.config.filter_parameters` by default. Otherwise, you must specify a list of keys to filter out.
#### ClientEnv
The `ClientEnv` logger will add `ip` and user agent `ua` 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

@ -5,6 +5,7 @@ require 'grape_logging/formatters/json'
require 'grape_logging/loggers/base' 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/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,9 @@
module GrapeLogging
module Loggers
class ClientEnv < GrapeLogging::Loggers::Base
def parameters(request, _)
{ ip: request.env["HTTP_X_FORWARDED_FOR"] || request.env["REMOTE_ADDR"], ua: request.env["HTTP_USER_AGENT"] }
end
end
end
end