Sha256: 64797c3b1edd0f957a2f8aa4c824bc659eabcedaa27fe98ff6f35022757523e0
Contents?: true
Size: 635 Bytes
Versions: 2
Compression:
Stored size: 635 Bytes
Contents
module TeeHelper def tee(*loggers) return TeeLogger.new(self, *loggers) end end class TeeLogger def initialize(*loggers) @loggers = Set.new(loggers.flatten.compact) end attr :loggers def self.logger_methods Set.new(Logger.instance_methods) - Set.new(Object.instance_methods + %w(tee)) end logger_methods.each do |method| define_method(method) do |*args| @loggers.each { |l| l.send(method, *args) } end end include TeeHelper end class Logger include TeeHelper end class MinimalLogFormat def call(severity, time, progname, msg) "[#{severity.rjust(8)}] #{msg}\n" end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
lsync-1.2.5 | lib/lsync/tee_logger.rb |
lsync-1.2.1 | lib/lsync/tee_logger.rb |