module Chihiro::Loggable

Private Instance Methods

log_and_deal_exceptions() { || ... } click to toggle source
# File lib/chihiro/loggable.rb, line 18
def log_and_deal_exceptions
  log_request unless should_ignore_logging?
  yield
  log_response unless should_ignore_logging?
end
log_exception(e) click to toggle source
# File lib/chihiro/loggable.rb, line 47
def log_exception(e)
  to_log = {
    message: 'Catched exception in controller',
    requestPath: request.path,
    requestMethod: request.request_method,
    exceptionClass: e.class.to_s,
    exceptionMessage: e.message,
    backtrace: e.backtrace
  }
  Rails.logger.error(to_log)
end
log_known_exception(e) click to toggle source
# File lib/chihiro/loggable.rb, line 59
def log_known_exception(e)
  to_log = {
    message: 'Catched known exception in controller',
    requestPath: request.path,
    requestMethod: request.request_method,
    exceptionClass: e.class.to_s,
    exceptionMessage: e.message
  }
  Rails.logger.warn(to_log)
end
log_request() click to toggle source
# File lib/chihiro/loggable.rb, line 24
def log_request
  to_log = {
    message: 'Received API request',
    requestPath: request.path,
    requestMethod: request.request_method
  }
  if Rails.configuration.no_log_param_paths.include?("#{controller_name}##{action_name}")
    Rails.logger.debug(to_log)
  else
    Rails.logger.debug(to_log.merge(params: params.except(:format, :controller, :action).as_json))
  end
end
log_response() click to toggle source
# File lib/chihiro/loggable.rb, line 37
def log_response
  to_log = {
    message: 'Send API Response',
    requestPath: request.path,
    requestMethod: request.request_method,
    responseStatus: response.status.to_s
  }
  Rails.logger.debug(to_log)
end
should_ignore_logging?() click to toggle source
# File lib/chihiro/loggable.rb, line 13
def should_ignore_logging?
  return true unless Rails.configuration.lograge.ignore_actions
  Rails.configuration.lograge.ignore_actions.include?("#{controller_name.camelize}Controller##{action_name}")
end