class Asperalm::Log
Singleton object for logging
Attributes
logger[R]
logger_type[R]
program_name[W]
Public Class Methods
dump(name,object,format=:json)
click to toggle source
dump object in debug mode @param name string or symbol @param format either pp or json format
# File lib/asperalm/log.rb, line 28 def self.dump(name,object,format=:json) result=case format when :ruby;PP.pp(object,'') when :json;JSON.pretty_generate(object) rescue PP.pp(object,'') else raise "wrong parameter, expect pp or json" end self.log.debug("#{name.to_s.green} (#{format})=\n#{result}") end
levels()
click to toggle source
levels are :debug,:info,:warn,:error,fatal,:unknown
# File lib/asperalm/log.rb, line 17 def self.levels; Logger::Severity.constants.map{|c| c.downcase.to_sym};end
log()
click to toggle source
get the logger object of singleton
# File lib/asperalm/log.rb, line 23 def self.log; self.instance.logger; end
logtypes()
click to toggle source
where logs are sent to
# File lib/asperalm/log.rb, line 20 def self.logtypes; [:stderr,:stdout,:syslog];end
new()
click to toggle source
# File lib/asperalm/log.rb, line 72 def initialize @logger=nil @program_name='asperalm' # this sets @logger and @logger_type self.logger_type=:stderr end
Public Instance Methods
level()
click to toggle source
get symbol of debug level of underlying logger
# File lib/asperalm/log.rb, line 43 def level Logger::Severity.constants.each do |name| return name.downcase.to_sym if @logger.level.eql?(Logger::Severity.const_get(name)) end raise "error" end
level=(new_level)
click to toggle source
set log level of underlying logger given symbol level
# File lib/asperalm/log.rb, line 38 def level=(new_level) @logger.level=Logger::Severity.const_get(new_level.to_sym.upcase) end
logger_type=(new_logtype)
click to toggle source
change underlying logger, but keep log level
# File lib/asperalm/log.rb, line 51 def logger_type=(new_logtype) current_severity_integer=@logger.nil? ? Logger::Severity::WARN : @logger.level case new_logtype when :stderr @logger = Logger.new(STDERR) when :stdout @logger = Logger.new(STDOUT) when :syslog require 'syslog/logger' @logger = Syslog::Logger.new(@program_name) else raise "unknown log type: #{new_logtype.class} #{new_logtype}" end @logger.level=current_severity_integer @logger_type=new_logtype end