class DispatchRider::Logging::LifecycleLogger

Attributes

kind[R]
message[R]
options[R]

Public Class Methods

log_error_handler_fail(message, exception) click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 5
def log_error_handler_fail(message, exception)
  new(:error_handler_fail, message, exception: exception).log
end
log_got_stop(reason, message) click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 9
def log_got_stop(reason, message)
  new(:stop, message, reason: reason).log
end
new(kind, message, options = {}) click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 44
def initialize(kind, message, options = {})
  @kind = kind
  @message = message
  @options = options
end
wrap_handling(message) { || ... } click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 13
def wrap_handling(message)
  start_time = Time.now
  log_start(message)
  yield
  log_success(message)
rescue => exception
  log_fail(message, exception)
  raise exception
ensure
  log_complete(message, Time.now - start_time)
end

Private Class Methods

log_complete(message, duration) click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 27
def log_complete(message, duration)
  new(:complete, message, duration: duration).log
end
log_fail(message, exception) click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 31
def log_fail(message, exception)
  new(:fail, message, exception: exception).log
end
log_start(message) click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 39
def log_start(message)
  new(:start, message).log
end
log_success(message) click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 35
def log_success(message)
  new(:success, message).log
end

Public Instance Methods

log() click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 50
def log
  logger.send(log_action, formatted_data)
end

Private Instance Methods

additional_info_injector() click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 66
def additional_info_injector
  DispatchRider.config.additional_info_injector
end
formatted_data() click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 82
def formatted_data
  formatter.format(interjected_message)
end
formatter() click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 58
def formatter
  DispatchRider.config.log_formatter
end
interjected_message() click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 78
def interjected_message
  additional_info_injector.call(translated_message)
end
log_action() click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 86
def log_action
  case kind
  when :fail, :error_handler_fail then :error
  when :start, :stop, :complete, :success then :info
  end
end
logger() click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 62
def logger
  DispatchRider.config.logger
end
translated_message() click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 74
def translated_message
  translator.translate(message, kind, options)
end
translator() click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 70
def translator
  Translator
end