Module: SemanticLogger::Formatters

Defined in:
lib/semantic_logger/formatters.rb,
lib/semantic_logger/formatters/raw.rb,
lib/semantic_logger/formatters/base.rb,
lib/semantic_logger/formatters/json.rb,
lib/semantic_logger/formatters/color.rb,
lib/semantic_logger/formatters/syslog.rb,
lib/semantic_logger/formatters/default.rb,
lib/semantic_logger/formatters/fluentd.rb,
lib/semantic_logger/formatters/one_line.rb,
lib/semantic_logger/formatters/signalfx.rb,
lib/semantic_logger/formatters/syslog_cee.rb

Defined Under Namespace

Classes: Base, Color, Default, Fluentd, Json, OneLine, Raw, Signalfx, Syslog, SyslogCee

Class Method Summary collapse

Class Method Details

.factory(formatter) ⇒ Object

Return formatter that responds to call.

Supports formatter supplied as:

  • Symbol

  • Hash ( Symbol => { options })

  • Instance of any of SemanticLogger::Formatters

  • Proc

  • Any object that responds to :call



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/semantic_logger/formatters.rb', line 23

def self.factory(formatter)
  if formatter.is_a?(Symbol)
    SemanticLogger::Utils.constantize_symbol(formatter, 'SemanticLogger::Formatters').new
  elsif formatter.is_a?(Hash) && formatter.size.positive?
    fmt, options = formatter.first
    SemanticLogger::Utils.constantize_symbol(fmt.to_sym, 'SemanticLogger::Formatters').new(options)
  elsif formatter.respond_to?(:call)
    formatter
  else
    raise(ArgumentError, "Unknown formatter: #{formatter.inspect}")
  end
end