class Patriot::Util::Logger::Factory
logger factory
Constants
- DEFAULT_LOGGER_FACTORY_CLASS
default logger factory class
- FACTORY_CLASS_KEY
configuration key for logger factory class
Public Class Methods
create_logger(name, config)
click to toggle source
@param name [String] logger name @param config [Patriot::Util::Config::Base] configuration @return [Patriot::Util::Logger::Facade]
# File lib/patriot/util/logger/factory.rb, line 17 def self.create_logger(name, config) klass = get_factory_class_name(config) # implentations of logger facotory should include Singleton logger = eval(klass).instance.get_logger(name, config) return logger end
get_factory_class_name(config)
click to toggle source
@param config [Patriot::Util::Config::Base] @return [String] factory class name
# File lib/patriot/util/logger/factory.rb, line 26 def self.get_factory_class_name(config) return config.get(FACTORY_CLASS_KEY, DEFAULT_LOGGER_FACTORY_CLASS).to_s end
new()
click to toggle source
# File lib/patriot/util/logger/factory.rb, line 30 def initialize @mutex = Mutex.new @loggers = {} end
Public Instance Methods
get_logger(name, config)
click to toggle source
@param name [String] logger name @param config [Patriot::Util::Config::Base] configuration @return [Patriot::Util::Logger::Facade]
# File lib/patriot/util/logger/factory.rb, line 38 def get_logger(name, config) @mutex.synchronize do unless @loggers.has_key?(name) logger = build(name,config) @loggers[name] = Facade.new(logger) end return @loggers[name] end end
Private Instance Methods
build(name, config)
click to toggle source
build logger should be overridden in sub-classes @param name [String] logger name @param config [Patriot::Util::Config::Base] configuration
# File lib/patriot/util/logger/factory.rb, line 52 def build(name, config) raise NotImplementedError end