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
  log_dir = Environment::log_dir
  FileUtils.mkdir_p(log_dir) if (!Dir.exist?(log_dir))
  #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

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