class Patriot::Util::Logger::Log4rFactory
a logger factory implementation for Log4r logger
Constants
- DEFAULT_LOG_FORMAT
default log format
- DEFAULT_LOG_LEVEL
default log level
- FORMAT_KEY
configuration key for log format
- LOG_LEVEL_KEY
configuration key for log level
- OUTPUTTERS_KEY
configuration key for log outputers
- OUTPUTTER_KEY_PREFIX
configuration prefix for log outputer
Public Instance Methods
create_formatter(config)
click to toggle source
create formatter based on the configuration
# File lib/patriot/util/logger/log4r_factory.rb, line 53 def create_formatter(config) log_format = get_format_config(config) formatter = Log4r::PatternFormatter.new(:pattern => log_format) return formatter end
Private Instance Methods
build(name, config)
click to toggle source
@see Patriot::Util::Logger:Factory
# File lib/patriot/util/logger/log4r_factory.rb, line 28 def build(name, config) logger = Log4r::Logger.new(name) logger = set_log_level(logger, config) logger = set_outputters(logger, config) return logger end
get_format_config(_conf)
click to toggle source
@private
# File lib/patriot/util/logger/log4r_factory.rb, line 69 def get_format_config(_conf) return _conf.get(FORMAT_KEY, DEFAULT_LOG_FORMAT) end
get_log_level(_conf)
click to toggle source
@private
# File lib/patriot/util/logger/log4r_factory.rb, line 61 def get_log_level(_conf) log_level = _conf.get(LOG_LEVEL_KEY, DEFAULT_LOG_LEVEL) log_level = eval("Log4r::#{log_level}") return log_level end
get_outputter(outputter_id, _conf, _formatter)
click to toggle source
@private
# File lib/patriot/util/logger/log4r_factory.rb, line 84 def get_outputter(outputter_id, _conf, _formatter) class_key = [OUTPUTTER_KEY_PREFIX, outputter_id, "class"].join(".") class_name = _conf.get(class_key) raise "logger class: #{class_key} is not set" if class_name.nil? outputter = nil case class_name when "Log4r::StdoutOutputter" outputter = Log4r::Outputter.stdout when "Log4r::StderrOutputter" outputter = Log4r::Outputter.stderr when "Log4r::DateFileOutputter" dir_key = [OUTPUTTER_KEY_PREFIX, outputter_id, "dir"].join(".") file_key = [OUTPUTTER_KEY_PREFIX, outputter_id, "file"].join(".") outputter = Log4r::DateFileOutputter.new("file", :filename => _conf.get(file_key), :dirname => _conf.get(dir_key)) else raise "unsupported outputter #{klass}" end # TODO to set outputter-specific formatter outputter.formatter = _formatter return outputter end
get_outputters(_conf, _formatter)
click to toggle source
@private
# File lib/patriot/util/logger/log4r_factory.rb, line 75 def get_outputters(_conf, _formatter) outputters = _conf.get(OUTPUTTERS_KEY, []) outputters = [outputters] unless outputters.is_a?(Array) return outputters.map{|o| get_outputter(o, _conf, _formatter)} return outputters end
set_log_level(logger, config)
click to toggle source
set log level to the logger
# File lib/patriot/util/logger/log4r_factory.rb, line 37 def set_log_level(logger, config) log_level = get_log_level(config) logger.level = log_level return logger end
set_outputters(logger, config)
click to toggle source
set outputters to the logger
# File lib/patriot/util/logger/log4r_factory.rb, line 45 def set_outputters(logger, config) formatter = create_formatter(config) logger.outputters = get_outputters(config, formatter) return logger end