module WorkerTools::Recorder

Public Instance Methods

add_info(message) click to toggle source
# File lib/worker_tools/recorder.rb, line 36
def add_info(message)
  @information ||= ''
  information << "#{format_info_message(message)}\n"
end
add_log(message, level = :info) click to toggle source
# File lib/worker_tools/recorder.rb, line 32
def add_log(message, level = :info)
  logger.public_send(level, format_log_message(message))
end
error_to_text(error, trace_lines = 20) click to toggle source
# File lib/worker_tools/recorder.rb, line 78
def error_to_text(error, trace_lines = 20)
  txt = "Error: #{error.message} (#{error.class})"
  txt << "Backtrace:\n#{error.backtrace[0, trace_lines].join("\n\t")}"
end
format_info_message(message) click to toggle source
# File lib/worker_tools/recorder.rb, line 52
def format_info_message(message)
  return error_to_text(message, info_error_trace_lines) if message.is_a?(Exception)

  message
end
format_log_message(message) click to toggle source
# File lib/worker_tools/recorder.rb, line 46
def format_log_message(message)
  return error_to_text(message, log_error_trace_lines) if message.is_a?(Exception)

  message
end
info_error_trace_lines() click to toggle source
# File lib/worker_tools/recorder.rb, line 74
def info_error_trace_lines
  20
end
log_directory() click to toggle source
# File lib/worker_tools/recorder.rb, line 62
def log_directory
  Rails.root.join('log')
end
log_error_trace_lines() click to toggle source
# File lib/worker_tools/recorder.rb, line 70
def log_error_trace_lines
  20
end
log_file_name() click to toggle source
# File lib/worker_tools/recorder.rb, line 66
def log_file_name
  "#{self.class.name.underscore.tr('/', '_')}.log"
end
logger() click to toggle source
# File lib/worker_tools/recorder.rb, line 58
def logger
  @logger ||= Logger.new(File.join(log_directory, log_file_name))
end
record(message, level = :info) click to toggle source
# File lib/worker_tools/recorder.rb, line 41
def record(message, level = :info)
  add_log(message, level)
  add_info(message)
end
record_fail(error) click to toggle source
# File lib/worker_tools/recorder.rb, line 25
def record_fail(error)
  record "ID #{model.id} - Error"
  record(error, :error)
  model.information = information
  model.save!(validate: false)
end
with_wrapper_logger(&block) click to toggle source
# File lib/worker_tools/recorder.rb, line 14
def with_wrapper_logger(&block)
  block.yield
# this time we do want to catch Exception to attempt to handle some of the
# critical errors.
# rubocop:disable Lint/RescueException
rescue Exception => e
  # rubocop:enable Lint/RescueException
  add_log(e, :error)
  raise
end
with_wrapper_recorder(&block) click to toggle source
# File lib/worker_tools/recorder.rb, line 3
def with_wrapper_recorder(&block)
  block.yield
# this time we do want to catch Exception to attempt to handle some of the
# critical errors.
# rubocop:disable Lint/RescueException
rescue Exception => e
  # rubocop:enable Lint/RescueException
  record_fail(e)
  raise
end