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 7
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 11
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 46
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 15
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 29
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 33
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 41
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 37
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 52
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 68
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 84
def formatted_data
  formatter.format(interjected_message)
end
formatter() click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 60
def formatter
  DispatchRider.config.log_formatter
end
interjected_message() click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 80
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 88
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 64
def logger
  DispatchRider.config.logger
end
translated_message() click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 76
def translated_message
  translator.translate(message, kind, **options)
end
translator() click to toggle source
# File lib/dispatch-rider/logging/lifecycle_logger.rb, line 72
def translator
  Translator
end