Class: Logger::ColorFormatter
- Inherits:
-
Formatter
- Object
- Formatter
- Logger::ColorFormatter
- Defined in:
- lib/innate/log/color_formatter.rb
Overview
Extended Formatter that supports ANSI colors.
The basic mapping of ANSI colors is as follows:
| reset | bold | dark | underline | blink | negative
MOD | 0 | 1 | 2 | 4 | 5 | 7
| black | red | green | yellow | blue | magenta | cyan | white
FG | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 BG | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47
The output is done by: “e[#mod;#fg;#bgm#stringe[0m” The suffix is to reset the terminal to the original state again.
Constant Summary collapse
- LEVEL_COLOR =
{ 'DEBUG' => "\e[0;34;40m%s\e[0m", # blue on black 'INFO' => "\e[0;37;40m%s\e[0m", # white on black 'WARN' => "\e[0;33;40m%s\e[0m", # yellow on black 'ERROR' => "\e[0;31;40m%s\e[0m", # red on black 'FATAL' => "\e[0;35;40m%s\e[0m", # red on black 'UNKNOWN' => "\e[0;32;40m%s\e[0m", # green on black }
- FORMAT_TIME =
"%Y-%m-%d %H:%M:%S"
- FORMAT_LINE =
"%s [%s $%d] %5s | %s: %s\n"
Class Method Summary collapse
Instance Method Summary collapse
- #call(severity, time, program, message) ⇒ Object
- #colorize(string, severity) ⇒ Object
- #format_time(time) ⇒ Object
Class Method Details
.color?(logdev) ⇒ Boolean
45 46 47 |
# File 'lib/innate/log/color_formatter.rb', line 45 def self.color?(logdev) logdev.respond_to?(:tty?) and logdev.tty? end |
Instance Method Details
#call(severity, time, program, message) ⇒ Object
28 29 30 31 32 33 34 35 |
# File 'lib/innate/log/color_formatter.rb', line 28 def call(severity, time, program, ) hint = severity[0,1] time = format_time(time) pid = $$ string = colorize(msg2str(), severity) FORMAT_LINE % [hint, time, pid, severity, program, string] end |
#colorize(string, severity) ⇒ Object
41 42 43 |
# File 'lib/innate/log/color_formatter.rb', line 41 def colorize(string, severity) LEVEL_COLOR[severity] % string end |
#format_time(time) ⇒ Object
37 38 39 |
# File 'lib/innate/log/color_formatter.rb', line 37 def format_time(time) time.strftime(FORMAT_TIME) end |