class Lumberjack::TagFormatter

tag_formatter.add(“finished_at”, Lumberjack::Formatter::DateTimeFormatter.new(“%Y-%m-%dT%H:%m:%S%z”))
tag_formatter.add([“password”, “email”]) { |value| “***” }
tag_formatter = Lumberjack::TagFormatter.new.default(Lumberjack::Formatter.new)
objects or any object that responds to ‘call`.
name specific formatters. Formatters can be either `Lumberjack::Formatter`
Class for formatting tags. You can register a default formatter and tag

def add(names, formatter = nil, &block)

Returns:
  • (Lumberjack::TagFormatter) - self

Parameters:
  • formatter (Lumberjack::Formatter, #call, nil) -- The formatter to use.
  • names (String, Array) -- The tag names to apply the formatter to.
def add(names, formatter = nil, &block)
  formatter ||= block
  formatter = dereference_formatter(formatter)
  if formatter.nil?
    remove(key)
  else
    Array(names).each do |name|
      @formatters[name.to_s] = formatter
    end
  end
  self
end

def clear

Returns:
  • (Lumberjack::TagFormatter) - self
def clear
  @default_formatter = nil
  @formatters.clear
  self
end

def default(formatter = nil, &block)

Returns:
  • (Lumberjack::TagFormatter) - self

Parameters:
  • formatter (Lumberjack::Formatter, #call, nil) -- The formatter to use.
def default(formatter = nil, &block)
  formatter ||= block
  formatter = dereference_formatter(formatter)
  @default_formatter = formatter
  self
end

def dereference_formatter(formatter)

def dereference_formatter(formatter)
  if formatter.is_a?(TaggedLoggerSupport::Formatter)
    formatter.__formatter
  elsif formatter.is_a?(Symbol)
    formatter_class_name = "#{formatter.to_s.gsub(/(^|_)([a-z])/) { |m| $~[2].upcase }}Formatter"
    Formatter.const_get(formatter_class_name).new
  else
    formatter
  end
end

def format(tags)

Returns:
  • (Hash) - The formatted tags.

Parameters:
  • tags (Hash) -- The tags to format.
def format(tags)
  return nil if tags.nil?
  if @default_formatter.nil? && (@formatters.empty? || (@formatters.keys & tags.keys).empty?)
    tags
  else
    formatted = {}
    tags.each do |name, value|
      formatter = (@formatters[name.to_s] || @default_formatter)
      if formatter.is_a?(Lumberjack::Formatter)
        value = formatter.format(value)
      elsif formatter.respond_to?(:call)
        value = formatter.call(value)
      end
      formatted[name.to_s] = value
    end
    formatted
  end
end

def initialize

def initialize
  @formatters = {}
  @default_formatter = nil
end

def remove(names)

Returns:
  • (Lumberjack::TagFormatter) - self

Parameters:
  • names (String, Array) -- The tag names to remove the formatter from.
def remove(names)
  Array(names).each do |name|
    @formatters.delete(name.to_s)
  end
  self
end

def remove_default

Returns:
  • (Lumberjack::TagFormatter) - self
def remove_default
  @default_formatter = nil
  self
end