class SemanticLogger::Subscriber
def application
def application @application || SemanticLogger.application end
def close
def close # NOOP end
def console_output?
def console_output? false end
def default_formatter
def default_formatter SemanticLogger::Formatters::Default.new end
def environment
def environment @environment || SemanticLogger.environment end
def flush
def flush # NOOP end
def formatter=(formatter)
def formatter=(formatter) @formatter = if formatter.nil? respond_to?(:call) ? self : default_formatter else Formatters.factory(formatter) end end
def host
def host @host || SemanticLogger.host end
def initialize(level: nil, formatter: nil, filter: nil, application: nil, environment: nil, host: nil,
Whether to log metric only entries with this subscriber.
metrics: [Boolean]
Default: SemanticLogger.host
Name of this host to appear in log messages.
host: [String]
Default: SemanticLogger.application
Name of this application to appear in log messages.
application: [String]
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]
Default: Use the built-in formatter (See: #call)
the output from this subscriber
An instance of a class that implements #call, or a Proc to be used to format
formatter: [Object|Proc]
Override the log level for this subscriber.
level: [:trace | :debug | :info | :warn | :error | :fatal]
Parameters
Initializer for Abstract Class SemanticLogger::Subscriber
def initialize(level: nil, formatter: nil, filter: nil, application: nil, environment: nil, host: nil, metrics: false, &block) self.formatter = block || formatter @application = application @environment = environment @host = host @metrics = metrics # Subscribers don't take a class name, so use this class name if a subscriber # is logged to directly. super(self.class, level, filter) end
def level
def level @level || :trace end
def level_index
Returns the lowest level index if the level has not been explicitly
Return the level index for fast comparisons.
def level_index @level_index || 0 end
def log(log)
def log(log) raise NotImplementedError end
def logger
Give each appender its own logger for logging.
def logger @logger ||= begin logger = SemanticLogger::Processor.logger.clone logger.name = self.class.name logger end end
def metrics?
def metrics? @metrics end
def should_log?(log)
def should_log?(log) super && (log.metric_only? ? metrics? : true) end