class Disloku::Log

Public Class Methods

new() click to toggle source
# File lib/disloku/Log.rb, line 11
def initialize()
        @loggers = {}

        rainbow = Rainbow.new()
        rainbow.enabled = true
        colors = {
                "DEBUG" => [:green, :normal],
                "INFO" => [:cyan, :normal],
                "WARN" => [:yellow, :bright],
                "ERROR" => [:red, :normal],
                "FATAL" => [:red, :bright],
        }

        addLogTarget(:default, STDOUT, Logger::INFO) do |severity, datetime, progname, msg|
                line = rainbow.wrap("#{msg}")
                if (colors.has_key?(severity))
                        c = colors[severity]
                        line = line.color(c[0])
                        if (c[1] == :bright)
                                line = line.bright()
                        end
                end
                line + "\n"
        end

        @scope = [[:default]]
end

Public Instance Methods

addLogTarget(key, io, level, &block) click to toggle source
# File lib/disloku/Log.rb, line 39
def addLogTarget(key, io, level, &block)
        @loggers[key] = Logger.new(io)
        if (!block.nil?)
                @loggers[key].formatter = block
        end
end
debug(message) click to toggle source
# File lib/disloku/Log.rb, line 64
def debug(message)
        log(:debug, message)
end
error(message) click to toggle source
# File lib/disloku/Log.rb, line 76
def error(message)
        log(:error, message)
end
fatal(message) click to toggle source
# File lib/disloku/Log.rb, line 80
def fatal(message)
        log(:fatal, message)
end
getLogTarget(key) click to toggle source
# File lib/disloku/Log.rb, line 46
def getLogTarget(key)
        return @loggers[key]
end
info(message) click to toggle source
# File lib/disloku/Log.rb, line 68
def info(message)
        log(:info, message)
end
level(key, level) click to toggle source
# File lib/disloku/Log.rb, line 60
def level(key, level)
        @loggers[key].level = level
end
log(method, message) click to toggle source
# File lib/disloku/Log.rb, line 84
def log(method, message)
        @scope.last().each() do |targetKey|
                @loggers[targetKey].send(method, message) if !@loggers[targetKey].nil?
        end
end
scope(scopeTargets) { || ... } click to toggle source
# File lib/disloku/Log.rb, line 50
def scope(scopeTargets)
        if (scopeTargets.kind_of?(Symbol))
                scopeTargets = [scopeTargets]
        end

        @scope.push(scopeTargets)
        yield
        @scope.pop()
end
warn(message) click to toggle source
# File lib/disloku/Log.rb, line 72
def warn(message)
        log(:warn, message)
end