# File lib/kafo/logger.rb, line 13 def buffer @buffer ||= [] end
# File lib/kafo/logger.rb, line 81 def self.buffering? KafoConfigure.verbose.nil? || ((KafoConfigure.verbose && !loggers.detect {|l| l.name == 'verbose'}) || self.loggers.empty?) end
# File lib/kafo/logger.rb, line 112 def self.color_layout KafoConfigure.use_colors? ? COLOR_LAYOUT : NOCOLOR_LAYOUT end
# File lib/kafo/logger.rb, line 105 def self.dump_buffer(buffer) buffer.each do |log| self.loggers.each { |logger| logger.send log[0], *([log[1]].flatten(1)), &log[2] } end buffer.clear end
# File lib/kafo/logger.rb, line 93 def self.dump_errors setup_fatal_logger(color_layout) if loggers.empty? unless self.error_buffer.empty? loggers.each { |logger| logger.error 'Errors encountered during run:' } self.dump_buffer(self.error_buffer) end end
# File lib/kafo/logger.rb, line 85 def self.dump_needed? !self.buffer.empty? end
# File lib/kafo/logger.rb, line 17 def error_buffer @error_buffer ||= [] end
# File lib/kafo/logger.rb, line 9 def loggers @loggers ||= [] end
# File lib/kafo/logger.rb, line 46 def self.setup begin FileUtils.mkdir_p(KafoConfigure.config.app[:log_dir], :mode => 0750) rescue Errno::EACCES puts "No permissions to create log dir #{KafoConfigure.config.app[:log_dir]}" end logger = Logging.logger['main'] filename = KafoConfigure.config.log_file begin logger.appenders = ::Logging.appenders.rolling_file('configure', :filename => filename, :layout => NOCOLOR_LAYOUT, :truncate => true ) # set owner and group (it's ignored if attribute is nil) FileUtils.chown KafoConfigure.config.app[:log_owner], KafoConfigure.config.app[:log_group], filename rescue ArgumentError puts "File #{filename} not writeable, won't log anything to file!" end logger.level = KafoConfigure.config.app[:log_level] self.loggers << logger setup_fatal_logger(color_layout) unless loggers.detect {|l| l.name == 'verbose'} end
# File lib/kafo/logger.rb, line 39 def self.setup_fatal_logger(layout) fatal_logger = Logging.logger['fatal'] fatal_logger.level = 'fatal' fatal_logger.appenders = [::Logging.appenders.stderr(:layout => layout)] self.loggers << fatal_logger end
# File lib/kafo/logger.rb, line 73 def self.setup_verbose logger = Logging.logger['verbose'] logger.level = (KafoConfigure.config && KafoConfigure.config.app[:verbose_log_level]) || :info layout = color_layout logger.appenders = [::Logging.appenders.stdout(:layout => layout)] self.loggers<< logger end
# File lib/kafo/logger.rb, line 89 def self.to_buffer(buffer, *args) buffer << args end
# File lib/kafo/logger.rb, line 101 def dump_errors self.class.dump_errors end
# File lib/kafo/logger.rb, line 116 def log(name, *args, &block) if self.class.buffering? self.class.to_buffer(self.class.buffer, name, args, &block) else self.class.dump_buffer(self.class.buffer) if self.class.dump_needed? self.class.loggers.each { |logger| logger.send name, *args, &block } end end