Class: Bogo::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/bogo/logger.rb

Defined Under Namespace

Modules: Helpers

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*logger_args) ⇒ Logger

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



43
44
45
46
47
48
49
50
51
# File 'lib/bogo/logger.rb', line 43

def initialize(*logger_args)
  if logger_args.empty?
    logger_args = [$stderr]
  end
  @base_args = logger_args
  @logger = ::Logger.new(*@base_args)
  @logger.level = :fatal
  @lock = Mutex.new
end

Class Method Details

.loggerLogger

Returns default logger.

Returns:



34
35
36
37
38
39
# File 'lib/bogo/logger.rb', line 34

def self.logger
  if !@_logger
    @_logger = new
  end
  @_logger
end

Instance Method Details

#named(name) ⇒ Logger

Create a new logger with the sub-name provided

Parameters:

  • name (String)

    sub-name for logger

Returns:



57
58
59
60
61
62
63
64
65
66
67
# File 'lib/bogo/logger.rb', line 57

def named(name)
  new_name = self.progname.to_s.dup
  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