class GreenLog::SimpleWriter
A simple log formatter, aimed at humans.
Attributes
dest[R]
Public Class Methods
new(dest)
click to toggle source
# File lib/green_log/simple_writer.rb, line 11 def initialize(dest) @dest = dest end
Public Instance Methods
<<(entry)
click to toggle source
# File lib/green_log/simple_writer.rb, line 17 def <<(entry) raise ArgumentError, "GreenLog::Entry expected" unless entry.is_a?(GreenLog::Entry) output = [ format_part(entry, :severity), format_part(entry, :context), "--", format_part(entry, :message), format_part(entry, :data), ].compact.join(" ") + "\n" output << format_exception(entry.exception) dest << output end
Protected Instance Methods
format_data(data)
click to toggle source
# File lib/green_log/simple_writer.rb, line 46 def format_data(data) return nil if data.empty? "[" + each_part_of(data).to_a.join(" ") + "]" end
Also aliased as: format_context
format_exception(exception)
click to toggle source
# File lib/green_log/simple_writer.rb, line 58 def format_exception(exception) return "" if exception.nil? result = " ! #{exception.class.name}: #{exception.message}\n" exception.backtrace.each do |line| result += " #{line}\n" end result end
format_message(message)
click to toggle source
# File lib/green_log/simple_writer.rb, line 54 def format_message(message) message end
format_part(entry, part)
click to toggle source
# File lib/green_log/simple_writer.rb, line 35 def format_part(entry, part) value = entry.public_send(part) return nil if value.nil? send("format_#{part}", value) end
format_severity(severity)
click to toggle source
# File lib/green_log/simple_writer.rb, line 42 def format_severity(severity) Severity.name(severity)[0].upcase end
Private Instance Methods
each_part_of(data, prefix = nil) { |"#{label}=#{inspect}"| ... }
click to toggle source
# File lib/green_log/simple_writer.rb, line 70 def each_part_of(data, prefix = nil, &block) return enum_for(:each_part_of, data, prefix) unless block_given? data.each do |k, v| label = [prefix, k].compact.join(".") if v.is_a?(Hash) each_part_of(v, label, &block) else yield "#{label}=#{v.inspect}" end end end