Class: Logbert::LoggerFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/logbert/logger_factory.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(level_manager = LevelManager.new) ⇒ LoggerFactory

Returns a new instance of LoggerFactory.



12
13
14
15
16
# File 'lib/logbert/logger_factory.rb', line 12

def initialize(level_manager = LevelManager.new)
  @inventory = {}
  @level_manager  = level_manager
  self.root.level = @level_manager[:warning]
end

Instance Attribute Details

#level_managerObject (readonly)

Returns the value of attribute level_manager.



10
11
12
# File 'lib/logbert/logger_factory.rb', line 10

def level_manager
  @level_manager
end

Instance Method Details

#[](name_or_module) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/logbert/logger_factory.rb', line 18

def [](name_or_module)
  name = Logbert.name_for(name_or_module)
  @inventory[name] ||= begin
    l = Logger.new(self, @level_manager, name)
    l.extend @level_manager
  end
end

#parent_for(logger) ⇒ Object



30
31
32
33
34
35
36
37
38
# File 'lib/logbert/logger_factory.rb', line 30

def parent_for(logger)
  n = logger.name
  unless n.empty?
    components = Logbert.split_name(n)
    components.pop
    parent_name = components.join(Logbert::NameSeparator)
    return self[parent_name]
  end
end

#rootObject



26
27
28
# File 'lib/logbert/logger_factory.rb', line 26

def root
  @root ||= self['']
end