Sha256: d579ecc9e856b6cb27299d243a5ff2ef3e440754f5ea10dcf874f956ecefa95c
Contents?: true
Size: 1.23 KB
Versions: 9
Compression:
Stored size: 1.23 KB
Contents
# Copyright (c) 2015 Sqreen. All Rights Reserved. # Please refer to our terms for more information: https://www.sqreen.com/terms.html require 'singleton' require 'logger' require 'sqreen/logger' module Sqreen class DeferredLogger include Singleton def initialize @buffer = StringIO.new @logger = ::Logger.new(@buffer) end def debug(msg = nil, &block) @logger.debug(msg, &block) end def info(msg = nil, &block) @logger.info(msg, &block) end def warn(msg = nil, &block) @logger.warn(msg, &block) end def error(msg = nil, &block) @logger.error(msg, &block) end def fatal(msg = nil, &block) @logger.error(msg, &block) end def add(severity, msg = nil, &block) send(Sqreen::Logger::SEVERITY_TO_METHOD[severity], msg, &block) end def formatter=(value) @logger.formatter = value end def flush_to(logger) logger.instance_eval { @logdev }.write(read).tap { reset } end private def read @buffer.rewind @buffer.read end def reset buffer = StringIO.new logger = ::Logger.new(buffer) logger.formatter = @logger.formatter @buffer, @logger = buffer, logger end end end
Version data entries
9 entries across 9 versions & 1 rubygems