Sha256: a3fd2b62ff821a73e149d4bb09008ab9c0bd35dc13dd8d5c0e878448038c7531
Contents?: true
Size: 1.27 KB
Versions: 7
Compression:
Stored size: 1.27 KB
Contents
require 'logger' module MCollective module Logger # Impliments a file based logger using the standard ruby logger class # # To configure you should set: # # - config.logfile # - config.keeplogs defaults to 2097152 # - config.max_log_size defaults to 5 class File_logger<Base def start config = Config.instance @logger = ::Logger.new(config.logfile, config.keeplogs, config.max_log_size) @logger.formatter = ::Logger::Formatter.new set_level(config.loglevel.to_sym) end def set_logging_level(level) @logger.level = map_level(level) rescue Exception => e @logger.level = ::Logger::DEBUG log(:error, "", "Could not set logging to #{level} using debug instead: #{e.class} #{e}") end def valid_levels {:info => ::Logger::INFO, :warn => ::Logger::WARN, :debug => ::Logger::DEBUG, :fatal => ::Logger::FATAL, :error => ::Logger::ERROR} end def log(level, from, msg) @logger.add(map_level(level)) { "#{from} #{msg}" } rescue # if this fails we probably cant show the user output at all, # STDERR it as last resort STDERR.puts("#{level}: #{msg}") end end end end
Version data entries
7 entries across 7 versions & 1 rubygems