Class: SimpleBackup::Utils::Logger

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/simple_backup/utils/logger.rb

Constant Summary collapse

TIME_FORMAT =
'%Y-%m-%dT%H:%M:%S'

Instance Method Summary collapse

Constructor Details

#initializeLogger



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 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

Instance Method Details

#bufferObject



87
88
89
# File 'lib/simple_backup/utils/logger.rb', line 87

def buffer
  @buffer
end

#check_level(level) ⇒ Object



83
84
85
# 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) ⇒ Object



54
55
56
# File 'lib/simple_backup/utils/logger.rb', line 54

def debug(message)
  log(:debug, message)
end

#error(message) ⇒ Object



66
67
68
# File 'lib/simple_backup/utils/logger.rb', line 66

def error(message)
  log(:error, message)
end

#info(message) ⇒ Object



58
59
60
# File 'lib/simple_backup/utils/logger.rb', line 58

def info(message)
  log(:info, message)
end

#level=(level) ⇒ Object



39
40
41
42
# File 'lib/simple_backup/utils/logger.rb', line 39

def level=(level)
  check_level(level)
  @level = level
end

#log(level, message) ⇒ Object



70
71
72
73
74
75
76
77
78
79
80
81
# 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) ⇒ Object



49
50
51
52
# 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) ⇒ Object



44
45
46
47
# 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) ⇒ Object



62
63
64
# File 'lib/simple_backup/utils/logger.rb', line 62

def warning(message)
  log(:warning, message)
end