class Bogo::Logger

Public Class Methods

logger() click to toggle source

@return [Logger] default logger

# File lib/bogo/logger.rb, line 35
def self.logger
  if !@_logger
    @_logger = new
  end
  @_logger
end
new(*logger_args) click to toggle source

Create a new ::Logger instance wrapped to allow threaded interactions

# File lib/bogo/logger.rb, line 44
def initialize(*logger_args)
  if logger_args.empty?
    logger_args = [$stderr]
  end
  @base_args = logger_args
  logger = ::Logger.new(*@base_args)
  logger.level = :fatal
  @wrapped_logger = Concurrent::MVar.new(logger)
end

Public Instance Methods

named(name) click to toggle source

Create a new logger with the sub-name provided

@param name [String] sub-name for logger @return [Logger]

# File lib/bogo/logger.rb, line 58
def named(name)
  new_name = self.progname.to_s
  new_name << "." unless new_name.empty?
  new_name << name
  new_logger = Logger.new(*@base_args)
  [:level, :formatter, :datetime_format].each do |m|
    new_logger.send("#{m}=", self.send(m))
  end
  new_logger.progname = new_name
  new_logger
end

Protected Instance Methods

wrapped_logger() click to toggle source
# File lib/bogo/logger.rb, line 81
def wrapped_logger
  @wrapped_logger
end