class Discorb::Logger

@!visibility private

Attributes

levels[R]
colorize_log[RW]
out[RW]

Public Class Methods

new(out, colorize_log, level) click to toggle source
# File lib/discorb/log.rb, line 10
def initialize(out, colorize_log, level)
  @out = out
  @level = self.class.levels.index(level)
  @colorize_log = colorize_log
end

Public Instance Methods

debug(message) click to toggle source
# File lib/discorb/log.rb, line 25
def debug(message)
  return unless @level <= 0

  write_output("DEBUG", "\e[90m", message)
end
error(message) click to toggle source
# File lib/discorb/log.rb, line 43
def error(message)
  return unless @level <= 3

  write_output("ERROR", "\e[31m", message)
end
fatal(message) click to toggle source
# File lib/discorb/log.rb, line 49
def fatal(message)
  return unless @level <= 4

  write_output("FATAL", "\e[91m", message)
end
info(message) click to toggle source
# File lib/discorb/log.rb, line 31
def info(message)
  return unless @level <= 1

  write_output("INFO", "\e[94m", message)
end
level() click to toggle source
# File lib/discorb/log.rb, line 16
def level
  self.class.levels[@level]
end
level=(level) click to toggle source
# File lib/discorb/log.rb, line 20
def level=(level)
  @level = self.class.levels.index(level)
  raise ArgumentError, "Invalid log level: #{level}" unless @level
end
warn(message) click to toggle source
# File lib/discorb/log.rb, line 37
def warn(message)
  return unless @level <= 2

  write_output("WARN", "\e[93m", message)
end

Private Instance Methods

write_output(name, color, message) click to toggle source
# File lib/discorb/log.rb, line 61
def write_output(name, color, message)
  return unless @out

  if @colorize_log
    @out.puts("\e[2;90m[#{Time.now.iso8601}] #{color}#{name}\e[m -- #{message}")
  else
    @out.puts("[#{Time.now.iso8601}] #{name} -- #{message}")
  end
end