class Dataflow::Logger

Attributes

prefix[RW]
use_notifications[RW]

Public Class Methods

new(prefix:, use_notifications: false) click to toggle source
# File lib/dataflow/logger.rb, line 7
def initialize(prefix:, use_notifications: false)
  @prefix = prefix
  @use_notifications = use_notifications
  @@impl = LoggerImpl.new
end

Public Instance Methods

error(error:, custom_message: '') click to toggle source
# File lib/dataflow/logger.rb, line 21
def error(error:, custom_message: '')
  first_line = "[ERROR => #{error.class}: '#{error.message}']"
  first_line += " #{custom_message}" if custom_message.present?
  first_line += ' Backtrace: '
  log(first_line)
  log('--')
  (error.backtrace || []).each_with_index { |line, idx| log("#{idx}: #{line}") }
end
log(str) click to toggle source
# File lib/dataflow/logger.rb, line 13
def log(str)
  return if ENV['DATAFLOW_SKIP_LOGGING']
  now = DateTime.now.strftime('%y-%m-%d %H:%M:%S')
  message = "[#{now}][#{trace_id}] #{prefix} | #{str}"
  logger_impl = @@impl
  logger_impl.log(message)
end
trace_id() click to toggle source
# File lib/dataflow/logger.rb, line 30
def trace_id
  (Process.pid + Thread.current.object_id).to_s(16)[-8..-1]
end