Class: Zokor::ColoredLogger

Inherits:
Logger
  • Object
show all
Defined in:
lib/zokor/logger.rb

Direct Known Subclasses

ProgLogger

Instance Method Summary collapse

Instance Method Details

#format_message(level, *args) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/zokor/logger.rb', line 52

def format_message(level, *args)
  if TermColors::SCHEMA[@logdev.dev] && @logdev.dev.tty?
    begin
      index = self.class.const_get(level.sub('ANY', 'UNKNOWN'))
      color_name = TermColors::SCHEMA[@logdev.dev][index]
      color = TermColors.const_get(color_name.to_s.upcase)
    rescue NameError
      color = '0;0'
    end
    message = super(level, *args)
    if message.end_with?("\n")
      # make sure color is turned off before any trailing newline
      "\e[#{color}m#{message[0...-1]}\e[0;0m\n"
    else
      "\e[#{color}m#{message}\e[0;0m"
    end
  else
    super(level, *args)
  end
end

#rainbow(*args) ⇒ Object



73
74
75
76
77
# File 'lib/zokor/logger.rb', line 73

def rainbow(*args)
  SEV_LABEL.each_with_index do |level, i|
    add(i, *args)
  end
end