class Lograge::LogSubscribers::Base

Public Instance Methods

logger() click to toggle source
Calls superclass method
# File lib/lograge/log_subscribers/base.rb, line 10
def logger
  Lograge.logger.presence || super
end

Private Instance Methods

before_format(data, payload) click to toggle source
# File lib/lograge/log_subscribers/base.rb, line 65
def before_format(data, payload)
  Lograge.before_format(data, payload)
end
custom_options(event) click to toggle source
# File lib/lograge/log_subscribers/base.rb, line 60
def custom_options(event)
  options = Lograge.custom_options(event) || {}
  options.merge event.payload[:custom_payload] || {}
end
default_status() click to toggle source
# File lib/lograge/log_subscribers/base.rb, line 51
def default_status
  0
end
extract_request(event, payload) click to toggle source
# File lib/lograge/log_subscribers/base.rb, line 26
def extract_request(event, payload)
  data = initial_data(payload)
  data.merge!(extract_status(payload))
  data.merge!(extract_runtimes(event, payload))
  data.merge!(extract_location)
  data.merge!(extract_unpermitted_params)
  data.merge!(custom_options(event))
end
extract_status(payload) click to toggle source
# File lib/lograge/log_subscribers/base.rb, line 40
def extract_status(payload)
  if (status = payload[:status])
    { status: status.to_i }
  elsif (error = payload[:exception])
    exception, message = error
    { status: get_error_status_code(exception), error: "#{exception}: #{message}" }
  else
    { status: default_status }
  end
end
get_error_status_code(exception) click to toggle source
# File lib/lograge/log_subscribers/base.rb, line 55
def get_error_status_code(exception)
  status = ActionDispatch::ExceptionWrapper.rescue_responses[exception]
  Rack::Utils.status_code(status)
end
process_main_event(event) click to toggle source
# File lib/lograge/log_subscribers/base.rb, line 16
def process_main_event(event)
  return if Lograge.ignore?(event)

  payload = event.payload
  data = extract_request(event, payload)
  data = before_format(data, payload)
  formatted_message = Lograge.formatter.call(data)
  logger.send(Lograge.log_level, formatted_message)
end