class SemanticLogger::Base

def initialize(klass, level = nil, filter = nil)

end
end
(/\AExclude/ =~ log.message).nil?
def self.call(log)
module ComplexFilter
Module: A module that implements `.call`. For example:
The Proc must return true or false
Proc: Only include log messages where the supplied Proc returns true
regular expression. All other messages will be ignored
RegExp: Only include log messages where the class name matches the supplied
filter [Regexp|Proc|Module]

log messages when other appenders could be logging :info and lower
For example if set to :warn, this appender would only log :warn and :fatal
Only allow log entries of this level or higher to be written to this appender
level [Symbol]

are being logged
Name of the class, module, or other identifier for which the log messages
klass [String]
Parameters

Initializer for Abstract Class SemanticLogger::Base
def initialize(klass, level = nil, filter = nil)
  # Support filtering all messages to this logger instance.
  unless filter.nil? || filter.is_a?(Regexp) || filter.is_a?(Proc) || filter.respond_to?(:call)
    raise ":filter must be a Regexp, Proc, or implement :call"
  end
  @filter = filter.is_a?(Regexp) ? filter.freeze : filter
  @name   = klass.is_a?(String) ? klass : klass.name
  if level.nil?
    # Allow the global default level to determine this loggers log level
    @level_index = nil
    @level       = nil
  else
    self.level = level
  end
end