From d42b3d4347547b7790d0a716e7548baccf408076 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Fri, 20 Jan 2012 11:45:29 -0800 Subject: add a broadcasting logger so we can split logs --- activesupport/lib/active_support/logger.rb | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'activesupport/lib/active_support/logger.rb') diff --git a/activesupport/lib/active_support/logger.rb b/activesupport/lib/active_support/logger.rb index 66e8fcadb4..8288368d8d 100644 --- a/activesupport/lib/active_support/logger.rb +++ b/activesupport/lib/active_support/logger.rb @@ -1,6 +1,29 @@ require 'logger' module ActiveSupport + # Broadcasts logs to multiple loggers + class BroadcastLogger < ::Logger # :nodoc: + attr_reader :logs + + def initialize(logs) + super(nil) + @logs = logs + end + + def add(severity, message = nil, progname = nil, &block) + super + logs.each { |l| l.add(severity, message, progname, &block) } + end + + def <<(x) + logs.each { |l| l << x } + end + + def close + logs.each(&:close) + end + end + class Logger < ::Logger def initialize(*args) super -- cgit v1.2.3