class Pushr::Daemon::Logger
Public Class Methods
new(options)
click to toggle source
# File lib/pushr/daemon/logger.rb, line 4 def initialize(options) @options = options if @options[:foreground] STDOUT.sync = true @logger = ::Logger.new(STDOUT) else log_dir = File.join(Dir.pwd, 'log') FileUtils.mkdir_p(log_dir) log = File.open(File.join(log_dir, 'pushr.log'), 'a') log.sync = true @logger = ::Logger.new(log) end @logger.level = ::Logger::INFO @logger.formatter = proc do |severity, datetime, progname, msg| "[#{datetime}] #{severity}: #{msg}\n" end end
Public Instance Methods
error(msg)
click to toggle source
# File lib/pushr/daemon/logger.rb, line 28 def error(msg) error_notification(msg) log(::Logger::ERROR, msg, 'ERROR') end
info(msg)
click to toggle source
# File lib/pushr/daemon/logger.rb, line 24 def info(msg) log(::Logger::INFO, msg) end
warn(msg)
click to toggle source
# File lib/pushr/daemon/logger.rb, line 33 def warn(msg) log(::Logger::WARN, msg, 'WARNING') end
Private Instance Methods
do_error_notification?(e)
click to toggle source
# File lib/pushr/daemon/logger.rb, line 52 def do_error_notification?(e) @options[:error_notification] && ((e.is_a?(DeliveryError) && e.notify) || e.is_a?(Exception)) end
error_notification(e)
click to toggle source
# File lib/pushr/daemon/logger.rb, line 46 def error_notification(e) if do_error_notification?(e) && defined?(Airbrake) Airbrake.notify(e) end end
log(level, msg, prefix = nil)
click to toggle source
# File lib/pushr/daemon/logger.rb, line 39 def log(level, msg, prefix = nil) if msg.is_a?(Exception) msg = "#{msg.class.name}, #{msg.message}: #{msg.backtrace.join("\n") if msg.backtrace}" end @logger.add(level, msg) end