class SimpleBackup::Utils::Logger

Constants

TIME_FORMAT

Public Class Methods

new() click to toggle source
# File lib/simple_backup/utils/logger.rb, line 11
def initialize
  @buffer = []
  @scope = 0
  @level = :info
  @levels = {
    debug: {weight: 3, color: :light_cyan},
    info: {weight: 2, color: :green},
    warning: {weight: 1, color: :light_yellow},
    error: {weight: 0, color: :red}
  }

 banner = "LOG STARTED #{Time.new.strftime('%Y-%m-%dT%H:%M:%S')}"
  banner2 = "SimpleBackup v#{SimpleBackup::Version::get}"

  banner_length = 0
  banner_length = banner.length if  banner.length > banner_length
  banner_length = banner2.length if banner2.length > banner_length
  banner_length = 80 if 80 > banner_length

  border = '=' * ((banner_length - banner.length) / 2).ceil.to_i
  @buffer << "#{border}==[ #{banner} ]==#{border}"
  border = '=' * ((banner_length - banner2.length) / 2).ceil.to_i
  @buffer << "#{border}==[ #{banner2} ]==#{border}"

  puts @buffer[0].green
  puts @buffer[1].green
end

Public Instance Methods

buffer() click to toggle source
# File lib/simple_backup/utils/logger.rb, line 87
def buffer
  @buffer
end
check_level(level) click to toggle source
# File lib/simple_backup/utils/logger.rb, line 83
def check_level(level)
  raise "Unknown logging level #{level}" unless @levels.has_key?(level)
end
debug(message) click to toggle source
# File lib/simple_backup/utils/logger.rb, line 54
def debug(message)
  log(:debug, message)
end
error(message) click to toggle source
# File lib/simple_backup/utils/logger.rb, line 66
def error(message)
  log(:error, message)
end
info(message) click to toggle source
# File lib/simple_backup/utils/logger.rb, line 58
def info(message)
  log(:info, message)
end
level=(level) click to toggle source
# File lib/simple_backup/utils/logger.rb, line 39
def level=(level)
  check_level(level)
  @level = level
end
log(level, message) click to toggle source
# File lib/simple_backup/utils/logger.rb, line 70
def log(level, message)
  check_level(level)

  color = @levels[level][:color]
  should_write = @levels[level][:weight] <= @levels[@level][:weight]

  scope_prefix = '..' * @scope
  message = "%s %7s: %s%s" % [Time.new.strftime(TIME_FORMAT), level.to_s.upcase, scope_prefix, message]

  @buffer << message if should_write
  puts message.colorize(color: color) if should_write
end
scope_end(level = nil, message = nil) click to toggle source
# File lib/simple_backup/utils/logger.rb, line 49
def scope_end(level = nil, message = nil)
  log level, message unless level.nil? and message.nil?
  @scope -= 1 unless @scope == 0
end
scope_start(level = nil, message = nil) click to toggle source
# File lib/simple_backup/utils/logger.rb, line 44
def scope_start(level = nil, message = nil)
  log level, message unless level.nil? and message.nil?
  @scope += 1
end
warning(message) click to toggle source
# File lib/simple_backup/utils/logger.rb, line 62
def warning(message)
  log(:warning, message)
end