Class: Log4r::BasicFormatter
- Inherits:
-
SimpleFormatter
- Object
- Formatter
- SimpleFormatter
- Log4r::BasicFormatter
- Defined in:
- lib/log4r/formatter/formatter.rb
Overview
BasicFormatter produces output like this:
WARN loggername: I dropped my Wookie!
Or like this if trace is on:
WARN loggername(file.rb at 12): Hot potato!
Also, it will pretty-print any Exception it gets and inspect
everything else.
Hash arguments include:
depth
-
How many lines of the stacktrace to display.
Direct Known Subclasses
Constant Summary collapse
- @@basicformat =
"%*s %s"
Instance Method Summary collapse
- #format(event) ⇒ Object
-
#format_object(obj) ⇒ Object
Formats data according to its class:.
-
#initialize(hash = {}) ⇒ BasicFormatter
constructor
A new instance of BasicFormatter.
Constructor Details
#initialize(hash = {}) ⇒ BasicFormatter
Returns a new instance of BasicFormatter.
51 52 53 |
# File 'lib/log4r/formatter/formatter.rb', line 51 def initialize(hash={}) @depth = (hash[:depth] or hash['depth'] or 7).to_i end |
Instance Method Details
#format(event) ⇒ Object
55 56 57 58 59 60 61 |
# File 'lib/log4r/formatter/formatter.rb', line 55 def format(event) buff = sprintf(@@basicformat, MaxLevelLength, LNAMES[event.level], event.name) buff << (event.tracer.nil? ? "" : "(#{event.tracer[0]})") + ": " buff << format_object(event.data) + "\n" buff end |
#format_object(obj) ⇒ Object
Formats data according to its class:
- String
-
Prints it out as normal.
- Exception
-
Produces output similar to command-line exceptions.
- Object
-
Prints the type of object, then the output of
inspect
. An example – Array: [1, 2, 3]
70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/log4r/formatter/formatter.rb', line 70 def format_object(obj) klass = obj.class case when klass == Exception return "Caught #{obj.class}: #{obj.}\n\t" +\ (obj.backtrace.nil? ? [] : obj.backtrace[0...@depth]).join("\n\t").gsub('"','\\\\"') when klass == Hash return obj.to_json.gsub('"','\\\\"') when klass == String return obj.gsub('"','\\\\"') else # inspect the object return "#{obj.class}: #{obj.inspect}".gsub('"','\\\\"') end end |