Class: TidyLogger::Formatter

Inherits:
Logger::Formatter
  • Object
show all
Defined in:
lib/tidy_logger.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#titleObject

Returns the value of attribute title.



30
31
32
# File 'lib/tidy_logger.rb', line 30

def title
  @title
end

#typeObject

Returns the value of attribute type.



30
31
32
# File 'lib/tidy_logger.rb', line 30

def type
  @type
end

Instance Method Details

#call(severity, time, progname, msg) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/tidy_logger.rb', line 32

def call(severity, time, progname, msg)
  case @type
  when Proc
    instance_exec(severity, time, progname, msg, &@type)
  when :plain
    "#{stringify(msg)}\n"
  when :title
    "[#{@title}] #{stringify(msg)}\n"
  when :time
    "[#{format_datetime(time)}] #{stringify(msg)}\n"
  when :time_and_level
    "[%s] %5s : %s\n" % [format_datetime(time), severity, stringify(msg)]
  when :ltsv
    raise Error, "ltsv logger only takes Hash" unless msg.is_a?(Hash)
    msg.map{|k,v| "#{k}:#{v}" }.join("\t") << "\n"
  else
    # default stdlib logger format
    "%s, [%s#%d] %5s -- %s: %s\n" % [severity[0..0], format_datetime(time), $$, severity, progname, msg2str(msg)]
  end
end

#stringify(msg) ⇒ Object



53
54
55
# File 'lib/tidy_logger.rb', line 53

def stringify(msg)
  String === msg ? msg : msg.inspect
end