Sha256: f423f7208827aca77aac5241123da5930dc55c9118d6c59486fdf0154e76d33c

Contents?: true

Size: 1.05 KB

Versions: 43

Compression:

Stored size: 1.05 KB

Contents

#          Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com
# All files in this distribution are subject to the terms of the Ruby license.

module Ramaze
  module Logger

    # Bundles different informer instances and sends incoming messages to each.
    # This is the default with Informer as only member.

    class LogHub
      include Logging

      attr_accessor :loggers
      attr_accessor :ignored_tags

      # Takes a list of instances or classes (which will be initialized) and that
      # are added to @loggers. All messages are then sent to each member.

      def initialize(*loggers)
        @loggers = loggers
        @ignored_tags = Set.new
        @loggers.map! do |logger|
          next(nil) if logger == self
          logger.is_a?(Class) ? logger.new : logger
        end
        @loggers.uniq!
        @loggers.compact!
      end

      # integration to Logging

      def log(tag, *args)
        return if @ignored_tags.include?(tag)
        @loggers.each do |logger|
          logger.log(tag, *args)
        end
      end
    end

  end
end

Version data entries

43 entries across 43 versions & 5 rubygems

Version Path
Pistos-ramaze-2008.09 lib/ramaze/log/hub.rb
Pistos-ramaze-2008.12 lib/ramaze/log/hub.rb
Pistos-ramaze-2009.01 lib/ramaze/log/hub.rb
Pistos-ramaze-2009.02 lib/ramaze/log/hub.rb
Pistos-ramaze-2009.04.08 lib/ramaze/log/hub.rb
Pistos-ramaze-2009.06.12 lib/ramaze/log/hub.rb
manveru-ramaze-2008.07 lib/ramaze/log/hub.rb
manveru-ramaze-2008.08 lib/ramaze/log/hub.rb
manveru-ramaze-2008.09 lib/ramaze/log/hub.rb
manveru-ramaze-2008.10 lib/ramaze/log/hub.rb
manveru-ramaze-2008.12 lib/ramaze/log/hub.rb
manveru-ramaze-2009.01 lib/ramaze/log/hub.rb
manveru-ramaze-2009.04.01 lib/ramaze/log/hub.rb
manveru-ramaze-2009.04.08 lib/ramaze/log/hub.rb
manveru-ramaze-2009.04.18 lib/ramaze/log/hub.rb
manveru-ramaze-2009.04.22 lib/ramaze/log/hub.rb
manveru-ramaze-2009.04 lib/ramaze/log/hub.rb
manveru-ramaze-2009.05.08 lib/ramaze/log/hub.rb
manveru-ramaze-2009.05 lib/ramaze/log/hub.rb
manveru-ramaze-2009.06.04 lib/ramaze/log/hub.rb