class Raykit::Logger
def self.console_logger
def self.console_logger console_logger = ::Logger.new(STDOUT) console_logger.formatter = proc do |_severity, _datetime, _progname, msg| "#{Raykit::Symbols::get_severity_symbol(_severity)} #{msg}\n" end console_logger end
def self.default
def self.default Raykit::Logger.new([Raykit::Logger::console_logger, Raykit::Logger::file_logger]) end
def self.file_logger
def self.file_logger FileUtils.mkdir("log") if (!Dir.exist?("log")) file_logger = ::Logger.new(File.new(LOG_FILENAME, "w")) file_logger.formatter = proc do |_severity, _datetime, _progname, msg| "#{strip_ansi_codes(msg)}\n" end file_logger end
def self.strip_ansi_codes(str) # Strips ANSI color codes
def self.strip_ansi_codes(str) # Strips ANSI color codes str.gsub(/\e\[[0-9;]*m/, "") end
def debug(message)
def debug(message) @logger_array.each do |logger| logger.debug(message) end end
def error(message)
def error(message) @logger_array.each do |logger| logger.error(message) end end
def fatal(message)
def fatal(message) @logger_array.each do |logger| logger.fatal(message) end end
def info(message)
def info(message) @logger_array.each do |logger| logger.info(message) end end
def initialize(logger_array)
def initialize(logger_array) @logger_array = logger_array #@loggerB = loggerB end
def level=(level)
def level=(level) @logger_array.each do |logger| logger.level = level end end
def warn(message)
def warn(message) @logger_array.each do |logger| logger.warn(message) end end