Class: Mirah::Logging::LogFormatter
- Inherits:
-
Formatter
- Object
- Formatter
- Mirah::Logging::LogFormatter
- Defined in:
- lib/mirah/util/logging.rb
Instance Method Summary collapse
- #format(record) ⇒ Object
- #format_name(sb, level, name) ⇒ Object
-
#initialize(use_color = true) ⇒ LogFormatter
constructor
A new instance of LogFormatter.
- #shorten(name) ⇒ Object
Constructor Details
#initialize(use_color = true) ⇒ LogFormatter
Returns a new instance of LogFormatter.
15 16 17 18 19 |
# File 'lib/mirah/util/logging.rb', line 15 def initialize(use_color=true) @color = use_color @names = {} @inverse_names = {} end |
Instance Method Details
#format(record) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/mirah/util/logging.rb', line 55 def format(record) sb = java.lang.StringBuilder.new format_name(sb, record.level.int_value, record.logger_name) sb.append(formatMessage(record)) sb.append("\n") if record.thrown sw = java.io.StringWriter.new pw = java.io.PrintWriter.new(sw) record.thrown.printStackTrace(pw) pw.close sb.append(sw.toString) end sb.toString end |
#format_name(sb, level, name) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/mirah/util/logging.rb', line 21 def format_name(sb, level, name) sb.append("\e[1m") if @color sb.append("* [") if @color && level > 800 if level > 900 sb.append("\e[31m") else sb.append("\e[34m") end end sb.append(shorten(name)) sb.append("\e[39m") if @color sb.append('] ') sb.append("\e[0m") if @color end |
#shorten(name) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/mirah/util/logging.rb', line 37 def shorten(name) short = @names[name] return short if short pieces = name.split('.') pieces.size.times do |i| key = pieces[-i - 1, i + 1] existing = @inverse_names[key] if existing.nil? || existing == [name] @inverse_names[key] = [name] return @names[name] = key.join('.') else existing.each {|i| @names[i] = nil} existing << name unless existing.include?(name) end end return name end |