lib/raykit/logging.rb



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 = Hash.new
            @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)
            if(!loggers.has_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