Object
This class controls the conversion of log entry messages into strings. This allows you to log any object you want and have the logging system worry about converting it into a string.
Formats are added to a Formatter by associating them with a class using the add method. Formats are any object that responds to the call method.
By default, all object will be converted to strings using their inspect method except for Strings and Exceptions. Strings are not converted and Exceptions are converted using the ExceptionFormatter.
Add a formatter for a class. The formatter can be specified as either an object that responds to the call method or as a symbol representing one of the predefined formatters, or as a block to the method call.
The predefined formatters are: :inspect, :string, :exception, and :pretty_print.
# Use a predefined formatter formatter.add(MyClass, :pretty_print) # Pass in a formatter object formatter.add(MyClass, Lumberjack::Formatter::PrettyPrintFormatter.new) # Use a block formatter.add(MyClass){|obj| obj.humanize} # Add statements can be chained together formatter.add(MyClass, :pretty_print).add(YourClass){|obj| obj.humanize}
# File lib/lumberjack/formatter.rb, line 43 def add(klass, formatter = nil, &block) formatter ||= block if formatter.is_a?(Symbol) formatter_class_name = "#{formatter.to_s.gsub(/(^|_)([a-z])/){|m| $~[2].upcase}}Formatter" formatter = Formatter.const_get(formatter_class_name).new end @class_formatters[klass] = formatter self end
Hack for compatibility with Logger::Formatter
# File lib/lumberjack/formatter.rb, line 65 def call(severity, timestamp, progname, msg) "#{format(msg)}\n" end
Generated with the Darkfish Rdoc Generator 2.