class Log4r::PatternFormatter

See log4r/formatter/patternformatter.rb

Constants

DirectiveRegexp

Matches the first directive encountered and the stuff around it.

  • $1 is the stuff before directive or “” if not applicable

  • $2 is the directive group or nil if there's none

  • $3 is the %#.# match within directive group

  • $4 is the .# match which we don't use (it's there to match properly)

  • $5 is the directive letter

  • $6 is the stuff after the directive or “” if not applicable

  • $7 is the remainder

DirectiveTable

Arguments to sprintf keyed to directive letters
%c - event short name
%C - event fullname
%d - date
%g - Global Diagnostic Context (GDC)
%t - trace
%m - message
%h - thread name
%p - process ID aka PID
%M - formatted message
%l - Level in string form
%x - Nested Diagnostic Context (NDC)
%X - Mapped Diagnostic Context (MDC), syntax is “%X{key}”
%% - Insert a %

ISO8601

default date format

Attributes

date_method[R]
date_pattern[R]
pattern[R]

Public Class Methods

new(hash={}) click to toggle source

Accepts the following hash arguments (either a string or a symbol):

pattern

A pattern format string.

date_pattern

A Time#strftime format string. See the Ruby Time class for details.

date_method

As an option to #date_pattern, specify which Time.now method to call. For example, usec or to_s. Specify it as a String or Symbol.

The default date format is ISO8601, which looks like this:

yyyy-mm-dd hh:mm:ss    =>    2001-01-12 13:15:50
Calls superclass method Log4r::BasicFormatter.new
# File lib/log4r/formatter/patternformatter.rb, line 79
def initialize(hash={})
  super(hash)
  @pattern = (hash['pattern'] or hash[:pattern] or nil)
  @date_pattern = (hash['date_pattern'] or hash[:date_pattern] or nil)
  @date_method = (hash['date_method'] or hash[:date_method] or nil)
  @date_pattern = ISO8601 if @date_pattern.nil? and @date_method.nil?
  PatternFormatter.create_format_methods(self)
end