class At_email::At_Logger

Attributes

log_file_default[R]

Public Class Methods

new() click to toggle source
# File lib/at_email.rb, line 28
def initialize

  filename_timestamp = Time.now.strftime("%Y%m%d_%H%M%S")
  log_file_dir = $config[:output_base_dir] + '/_logs'

  @log_file_default = log_file_dir + '/' + $config[:task] + '.' + $config[:account_id] + '.' + filename_timestamp + '.log'
  if !Dir.exists?(log_file_dir)
    FileUtils.mkdir_p log_file_dir
  end
  @logger_stdout = Logger.new(STDOUT)
  @logger_stderr = Logger.new(STDERR)
  @logger_file_default = Logger.new(@log_file_default)
  @logger_stdout.datetime_format = '%Y-%m-%d %H:%M:%S'
  @logger_stdout.formatter = proc do |severity, datetime, progname, msg|
    "#{datetime} - " + $config[:task] + " - " + $config[:account_id] + " - #{msg}\n"
  end
  @logger_stderr.datetime_format = '%Y-%m-%d %H:%M:%S'
  @logger_stderr.formatter = proc do |severity, datetime, progname, msg|
    "#{datetime} - " + $config[:task] + " - " + $config[:account_id] + " - #{msg}\n"
  end
  @logger_file_default.datetime_format = '%Y-%m-%d %H:%M:%S'
  @logger_file_default.formatter = proc do |severity, datetime, progname, msg|
    "#{datetime} - " + $config[:task] + " - " + $config[:account_id] + " - #{msg}\n"
  end
  if $options.silent
    @logger_stdout.level = Logger::FATAL
    @logger_stderr.level = Logger::FATAL
    @logger_file_default.level = Logger::FATAL
  elsif $options.quiet
    @logger_stdout.level = Logger::WARN
    @logger_stderr.level = Logger::WARN
    @logger_file_default.level = Logger::WARN
  elsif $options.verbose
    @logger_stdout.level = Logger::DEBUG
    @logger_stderr.level = Logger::DEBUG
    @logger_file_default.level = Logger::DEBUG
  else
    @logger_stdout.level = Logger::INFO
    @logger_stderr.level = Logger::INFO
    @logger_file_default.level = Logger::INFO
  end
end

Public Instance Methods

debug(event) click to toggle source
# File lib/at_email.rb, line 71
def debug(event)
  @logger_stdout.debug(event)
  @logger_file_default.debug(event)
end
error(event) click to toggle source
# File lib/at_email.rb, line 86
def error(event)
  @logger_stderr.error(event)
  @logger_file_default.error(event)
end
event(event_level, event_tag, event_data) click to toggle source
# File lib/at_email.rb, line 101
def event(event_level, event_tag, event_data)
  event_tag_formatted = get_event_tag_formatted(event_tag)
  if event_tag_formatted === ''
    log_string = event_data
  else
    log_string = event_tag_formatted + ' - ' + event_data
  end
  case event_level
  when 'DEBUG'
    $logger.debug log_string
  when 'WARN'
    $logger.error log_string
  when 'ERROR'
    $logger.fatal ''
    $logger.error log_string
    $logger.error ''
    $logger.error 'Error at line number: ' + __LINE__.to_s + ' of file: ' + __FILE__
    caller.each do |stack_line|
      $logger.error '     ' + stack_line
    end
    $logger.error ''
  when 'FATAL'
    error_code = 1
    $logger.fatal ''
    $logger.fatal log_string
    $logger.fatal ''
    $logger.fatal 'Fatal Error at line number: ' + __LINE__.to_s + ' of file: ' + __FILE__
    caller.each do |stack_line|
      $logger.fatal '     ' + stack_line
    end
    $logger.fatal ''
    $logger.fatal 'Exiting with error code: ' + error_code.to_s
    $logger.fatal ''
    puts "\n"
    exit(error_code)
  else
    $logger.info log_string
  end
end
fatal(event) click to toggle source
# File lib/at_email.rb, line 91
def fatal(event)
  @logger_stderr.fatal(event)
  @logger_file_default.fatal(event)
end
get_event_tag_formatted(event_tag) click to toggle source
# File lib/at_email.rb, line 141
def get_event_tag_formatted(event_tag)
  event_tag_formatted = ''
  if event_tag.length == 0
    event_tag_formatted = ''
  else
    if event_tag.length <= 2
      event_tag_formatted = '*' + event_tag + '*'
    else
      event_tag_formatted = '***** ' + event_tag + ' *****'
    end
  end
  return event_tag_formatted
end
info(event) click to toggle source
# File lib/at_email.rb, line 76
def info(event)
  @logger_stdout.info(event)
  @logger_file_default.info(event)
end
unknown(event) click to toggle source
# File lib/at_email.rb, line 96
def unknown(event)
  @logger_stderr.unknown(event)
  @logger_file_default.unknown(event)
end
warn(event) click to toggle source
# File lib/at_email.rb, line 81
def warn(event)
  @logger_stderr.warn(event)
  @logger_file_default.warn(event)
end