module TrackerHub::Request::Format::Logger
Logger
module formatting and rendering the request object
Public Instance Methods
cleaned_env()
click to toggle source
Extract the rack env keys (see TrackerHub::Request::Config#required_keys
)
and convert them
@return [Utils::Env] cleaned rack env object
@example
> status, headers, body = @app.call(env) > track = TrackerHub::Request.new(env, status, headers) > track.cleaned_env
@api public
# File lib/tracker_hub/request/format/logger.rb, line 37 def cleaned_env response.slice(*Request.config.required_keys).merge(serialized_env) end
serialized_env()
click to toggle source
Serialize objects before jsonifying them
@return [Hash]
@example
> status, headers, body = @app.call(env) > track = TrackerHub::Request.new(env, status, headers) > track.serialized_env
@api public
rubocop:disable AbcSize
# File lib/tracker_hub/request/format/logger.rb, line 53 def serialized_env { 'action_dispatch.logger' => response['action_dispatch.logger'].formatter.session_info, 'action_dispatch.remote_ip' => response['action_dispatch.remote_ip'].to_s, 'rack.session' => response['rack.session'].try(:to_hash), 'rack.session.options' => response['rack.session.options'].try(:to_hash), 'http_accept_language.parser' => response['http_accept_language.parser'].header } end
to_logger()
click to toggle source
Format
the response to the logger
@return [JSON]
@example
> status, headers, body = @app.call(env) > track = TrackerHub::Request.new(env, status, headers) > track.to_logger
@api public
# File lib/tracker_hub/request/format/logger.rb, line 16 def to_logger { status: status, request: request, response: cleaned_env, app_version: Request.config.app_version, tracker_version: Request::VERSION }.to_json end