Sha256: 014a4f0e9e39de48d2d60a5ea8bf9cb5a9be06a7b88e66a31a33cb847bff1ea1
Contents?: true
Size: 871 Bytes
Versions: 3
Compression:
Stored size: 871 Bytes
Contents
require 'iowa/Logger' module Iowa module Loggers class AsyncLogger < Iowa::Logger def initialize @queue = [] @periodic_flush = Thread.start { flush_periodically } super end def debug(msg) @queue << [:debug,msg] end def info(msg) @queue << [:info,msg] end def warn(msg) @queue << [:warn,msg] end def error(msg) @queue << [:error,msg] end def fatal(msg) @queue << [:fatal,msg] end def close @periodic_flush.stop flush super end def flush_periodically loop do sleep 1 flush end end def flush while msg = @queue.shift @logger.__send__(msg.first,msg.last) msg = nil end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
IOWA-1.0.3 | src/iowa/loggers/AsyncLogger.rb |
IOWA-1.0.2 | src/iowa/loggers/AsyncLogger.rb |
IOWA-1.0.0 | src/iowa/loggers/AsyncLogger.rb |