diff options
author | Mikel Lindsaar <raasdnil@gmail.com> | 2010-06-07 18:30:18 -0400 |
---|---|---|
committer | Mikel Lindsaar <raasdnil@gmail.com> | 2010-06-07 18:30:18 -0400 |
commit | a16fd961310d4df5bd20df5fe64b2f764d8aa471 (patch) | |
tree | 0e54acc2ae35e985cd8c8175f051e281acbd4595 /railties/lib/rails/log_subscriber.rb | |
parent | 735027e58d3000bd5d939e39deabfecef83ee20c (diff) | |
parent | d6953cbfd3b6e06eceba715c60e288b6d7db0d49 (diff) | |
download | rails-a16fd961310d4df5bd20df5fe64b2f764d8aa471.tar.gz rails-a16fd961310d4df5bd20df5fe64b2f764d8aa471.tar.bz2 rails-a16fd961310d4df5bd20df5fe64b2f764d8aa471.zip |
Merge branch 'master' of git://github.com/rails/rails
Diffstat (limited to 'railties/lib/rails/log_subscriber.rb')
-rw-r--r-- | railties/lib/rails/log_subscriber.rb | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/railties/lib/rails/log_subscriber.rb b/railties/lib/rails/log_subscriber.rb index 145c7e0ace..9a74fee745 100644 --- a/railties/lib/rails/log_subscriber.rb +++ b/railties/lib/rails/log_subscriber.rb @@ -52,6 +52,7 @@ module Rails def self.add(namespace, log_subscriber, notifier = ActiveSupport::Notifications) log_subscribers << log_subscriber + @flushable_loggers = nil log_subscriber.public_methods(false).each do |event| notifier.subscribe("#{event}.#{namespace}") do |*args| @@ -70,11 +71,17 @@ module Rails @log_subscribers ||= [] end + def self.flushable_loggers + @flushable_loggers ||= begin + loggers = log_subscribers.map(&:logger) + loggers.uniq! + loggers.select { |l| l.respond_to?(:flush) } + end + end + # Flush all log_subscribers' logger. def self.flush_all! - loggers = log_subscribers.map(&:logger) - loggers.uniq! - loggers.each { |l| l.flush if l.respond_to?(:flush) } + flushable_loggers.each(&:flush) end # By default, we use the Rails.logger for logging. |