lib/raykit/logging.rb
# frozen_string_literal: true require "json" require "logger" module Raykit class Logging attr_accessor :enabled, :loggers # Logger::Severity DEBUG,ERROR,FATAL,INFO,UNKOWN,WARN # defaults to WARN attr_accessor :severity def initialize @enabled = true @loggers = {} @severity = Logger::Severity::WARN end def set_severity_as_string(severity) @severity = Logger::Severity::DEBUG if severity == "debug" @severity = Logger::Severity::INFO if severity == "info" @severity = Logger::Severity::WARN if severity == "warn" @severity = Logger::Severity::ERROR if severity == "error" end def get_logger(context) unless loggers.key?(context) Dir.chdir(Environment.get_dev_dir("log")) do # start the log over whenever the log exceeds 100 megabytes in size loggers[context] = Logger.new("#{context}.log", 0, 100 * 1024 * 1024) end end loggers[context] end def log(context, level, message) if @enabled logger = get_logger(context) case level when Logger::Severity::DEBUG logger.debug(message) when Logger::Severity::INFO logger.info(message) when Logger::Severity::WARN logger.warn(message) when Logger::Severity::ERROR logger.error(message) when Logger::Severity::FATAL logger.fatal(message) else logger.unknown(message) end end end end end LOG = Raykit::Logging.new