class SemanticLogger::SyncProcessor
are monitor protected in case SyncProcessor is being used in a multi-threaded environment.
Appenders are designed to only be used by one thread at a time, so all calls
The SyncProcessor performs logging in the current thread.
def self.logger
For example when an appender is not working etc..
Internal logger for SemanticLogger
def self.logger @logger ||= begin l = SemanticLogger::Appender::IO.new($stderr, level: :warn) l.name = name l end end
def add(...)
def add(...) @monitor.synchronize { @appenders.add(...) } end
def close
def close @monitor.synchronize { @appenders.close } end
def flush
def flush @monitor.synchronize { @appenders.flush } end
def initialize(appenders = nil)
def initialize(appenders = nil) @monitor = Monitor.new @appenders = appenders || Appenders.new(self.class.logger.dup) end
def log(...)
def log(...) @monitor.synchronize { @appenders.log(...) } end
def reopen(*args)
def reopen(*args) @monitor.synchronize { @appenders.reopen(*args) } end
def start
def start # NOP end