Sha256: 780a4ef3857d179ea8049088a4d3b8b8d71ea6c46ba80364abaedb39d37a85e8
Contents?: true
Size: 1.51 KB
Versions: 8
Compression:
Stored size: 1.51 KB
Contents
module Rpush class Logger def initialize log_dir = File.join(Rpush.config.log_dir, 'log') FileUtils.mkdir_p(log_dir) log = File.open(File.join(log_dir, 'rpush.log'), 'a') log.sync = true setup_logger(log) rescue Errno::ENOENT, Errno::EPERM => e @logger = nil error(e) error('Logging disabled.') end def info(msg) log(:info, msg) end def error(msg) log(:error, msg, 'ERROR', STDERR) end def warn(msg) log(:warn, msg, 'WARNING', STDERR) end private def setup_logger(log) if Rpush.config.logger @logger = Rpush.config.logger elsif ActiveSupport.const_defined?('BufferedLogger') @logger = ActiveSupport::BufferedLogger.new(log, Rails.logger.level) @logger.auto_flushing = Rails.logger.respond_to?(:auto_flushing) ? Rails.logger.auto_flushing : true else @logger = ActiveSupport::Logger.new(log, Rails.logger.level) end end def log(where, msg, prefix = nil, io = STDOUT) if msg.is_a?(Exception) formatted_backtrace = msg.backtrace.join("\n") msg = "#{msg.class.name}, #{msg.message}\n#{formatted_backtrace}" end formatted_msg = "[#{Time.now.to_s(:db)}] " formatted_msg << "[#{prefix}] " if prefix formatted_msg << msg if io == STDERR io.puts formatted_msg elsif Rpush.config.foreground io.puts formatted_msg end @logger.send(where, formatted_msg) if @logger end end end
Version data entries
8 entries across 8 versions & 1 rubygems