Class: Log4Ruby::PatternFormatter
- Inherits:
-
Object
- Object
- Log4Ruby::PatternFormatter
- Defined in:
- lib/log4ruby/formatters/pattern_formatter.rb
Instance Method Summary collapse
-
#add_parameter_formatter(parameter, callable) ⇒ Object
Adds a parameter formatter to this formatter.
-
#format(log) ⇒ String
Format the log item using the pattern string.
-
#initialize(format_string, subst_array, parameter_formatters = {}) ⇒ PatternFormatter
constructor
New pattern formatter.
Constructor Details
#initialize(format_string, subst_array, parameter_formatters = {}) ⇒ PatternFormatter
New pattern formatter.
e.g. format_string = [%s] %7s - %s : %s subst_array = [:timestamp, :level, :full_logger_name, :message]
The above example will print the timestamp in the format specified. The level will be right aligned padded on the left to use 7 spaces followed by the full logger name and the message.
27 28 29 30 31 |
# File 'lib/log4ruby/formatters/pattern_formatter.rb', line 27 def initialize(format_string, subst_array, parameter_formatters = {}) @format_string = format_string @subst_array = subst_array @parameter_formatters = parameter_formatters end |
Instance Method Details
#add_parameter_formatter(parameter, callable) ⇒ Object
Adds a parameter formatter to this formatter.
37 38 39 |
# File 'lib/log4ruby/formatters/pattern_formatter.rb', line 37 def add_parameter_formatter(parameter, callable) @parameter_formatters[parameter] = callable end |
#format(log) ⇒ String
Format the log item using the pattern string.
46 47 48 49 50 51 52 53 54 |
# File 'lib/log4ruby/formatters/pattern_formatter.rb', line 46 def format(log) # Get the values of the parameters (apply custom formatters too). parameters = @subst_array.map do |parameter| value = log[parameter] @parameter_formatters.has_key?(parameter) ? @parameter_formatters[parameter].call(value) : value.to_s end # Substitute into the format string. @format_string % parameters end |