public
Last active

logger-colors

  • Download Gist
logger-colors.rb
Ruby
1 2 3 4 5 6 7 8 9 10 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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
# Colorizes the output of the standard library logger, depending on the logger level:
# To adjust the colors, look at Logger::Colors::SCHEMA and Logger::Colors::constants
 
require 'logger'
 
class Logger
module Colors
VERSION = '1.0.0'
 
NOTHING = '0;0'
BLACK = '0;30'
RED = '0;31'
GREEN = '0;32'
BROWN = '0;33'
BLUE = '0;34'
PURPLE = '0;35'
CYAN = '0;36'
LIGHT_GRAY = '0;37'
DARK_GRAY = '1;30'
LIGHT_RED = '1;31'
LIGHT_GREEN = '1;32'
YELLOW = '1;33'
LIGHT_BLUE = '1;34'
LIGHT_PURPLE = '1;35'
LIGHT_CYAN = '1;36'
WHITE = '1;37'
 
SCHEMA = {
STDOUT => %w[nothing green brown red purple cyan],
STDERR => %w[nothing green yellow light_red light_purple light_cyan],
}
end
end
 
class Logger
alias format_message_colorless format_message
 
def format_message(level, *args)
if Logger::Colors::SCHEMA[@logdev.dev]
color = begin
Logger::Colors.const_get \
Logger::Colors::SCHEMA[@logdev.dev][Logger.const_get(level.sub "ANY","UNKNOWN")].to_s.upcase
rescue NameError
"0;0"
end
"\e[#{ color }m#{ format_message_colorless(level, *args) }\e[0;0m"
else
format_message_colorless(level, *args)
end
end
end
 
# J-_-L

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.