class SlackbotFrd::Log

Attributes

level[W]
levels[R]
logfile[RW]

Public Class Methods

colors() click to toggle source
# File lib/slackbot_frd/lib/log.rb, line 23
def self.colors
  [:green, :red, :yellow, :none, :blue]
end
debug(message) click to toggle source
# File lib/slackbot_frd/lib/log.rb, line 35
def self.debug(message)
  log('Debug', message, :green) if level_on(:debug)
end
error(message) click to toggle source
# File lib/slackbot_frd/lib/log.rb, line 27
def self.error(message)
  log('Error', message, :red) if level_on(:error)
end
info(message) click to toggle source
# File lib/slackbot_frd/lib/log.rb, line 39
def self.info(message)
  log('Info', message, :blue) if level_on(:info)
end
level() click to toggle source
# File lib/slackbot_frd/lib/log.rb, line 14
def self.level
  return @default_level unless @level
  @level
end
level_on(level) click to toggle source
# File lib/slackbot_frd/lib/log.rb, line 19
def self.level_on(level)
  @levels[level] >= @levels[self.level]
end
log(loglevel, message, color = :none) click to toggle source
# File lib/slackbot_frd/lib/log.rb, line 47
def self.log(loglevel, message, color = :none)
  om = "#{DateTime.now.strftime('%Y-%m-%e %H:%M:%S.%L %z')}: [#{loglevel}]: #{message}\n"
  print om.send(color)
  begin
    raise StandardError.new('No log file specified. (Set with SlackbotFrd::Log.logfile=)') unless @logfile
    File.open(@logfile, 'a') do |f|
      f.write(om)
    end
  rescue StandardError => e
    puts "OH NO!  ERROR WRITING TO LOG FILE!: #{e}"
  end
  om
end
verbose(message) click to toggle source
# File lib/slackbot_frd/lib/log.rb, line 43
def self.verbose(message)
  log('Verbose', message, :magenta) if level_on(:verbose)
end
warn(message) click to toggle source
# File lib/slackbot_frd/lib/log.rb, line 31
def self.warn(message)
  log('Warn', message, :yellow) if level_on(:warn)
end