diff options
author | Gonçalo Silva <goncalossilva@gmail.com> | 2011-03-24 17:21:17 +0000 |
---|---|---|
committer | Gonçalo Silva <goncalossilva@gmail.com> | 2011-03-24 17:21:17 +0000 |
commit | 9887f238871bb2dd73de6ce8855615bcc5d8d079 (patch) | |
tree | 74fa9ff9524a51701cfa23f708b3f777c65b7fe5 /activesupport/lib/active_support/log_subscriber.rb | |
parent | aff821508a16245ebc03510ba29c70379718dfb7 (diff) | |
parent | 5214e73850916de3c9127d35a4ecee0424d364a3 (diff) | |
download | rails-9887f238871bb2dd73de6ce8855615bcc5d8d079.tar.gz rails-9887f238871bb2dd73de6ce8855615bcc5d8d079.tar.bz2 rails-9887f238871bb2dd73de6ce8855615bcc5d8d079.zip |
Merge branch 'master' of https://github.com/rails/rails
Diffstat (limited to 'activesupport/lib/active_support/log_subscriber.rb')
-rw-r--r-- | activesupport/lib/active_support/log_subscriber.rb | 71 |
1 files changed, 35 insertions, 36 deletions
diff --git a/activesupport/lib/active_support/log_subscriber.rb b/activesupport/lib/active_support/log_subscriber.rb index 83930b3f0d..10675edac5 100644 --- a/activesupport/lib/active_support/log_subscriber.rb +++ b/activesupport/lib/active_support/log_subscriber.rb @@ -4,7 +4,7 @@ require 'active_support/core_ext/class/attribute' module ActiveSupport # ActiveSupport::LogSubscriber is an object set to consume ActiveSupport::Notifications # with solely purpose of logging. The log subscriber dispatches notifications to a - # regirested object based on its given namespace. + # registered object based on its given namespace. # # An example would be Active Record log subscriber responsible for logging queries: # @@ -16,12 +16,12 @@ module ActiveSupport # end # end # - # And it's finally registed as: + # And it's finally registered as: # # ActiveRecord::LogSubscriber.attach_to :active_record # # Since we need to know all instance methods before attaching the log subscriber, - # the line above should be called after your ActiveRecord::LogSubscriber definition. + # the line above should be called after your <tt>ActiveRecord::LogSubscriber</tt> definition. # # After configured, whenever a "sql.active_record" notification is published, # it will properly dispatch the event (ActiveSupport::Notifications::Event) to @@ -31,23 +31,10 @@ module ActiveSupport # all logs when the request finishes (via action_dispatch.callback notification) in # a Rails environment. class LogSubscriber - mattr_accessor :colorize_logging - self.colorize_logging = true - - class_attribute :logger - - class << self - remove_method :logger - end - - def self.logger - @logger ||= Rails.logger if defined?(Rails) - end - # Embed in a String to clear all previous ANSI sequences. CLEAR = "\e[0m" BOLD = "\e[1m" - + # Colors BLACK = "\e[30m" RED = "\e[31m" @@ -58,32 +45,44 @@ module ActiveSupport CYAN = "\e[36m" WHITE = "\e[37m" - def self.attach_to(namespace, log_subscriber=new, notifier=ActiveSupport::Notifications) - log_subscribers << log_subscriber - @@flushable_loggers = nil + mattr_accessor :colorize_logging + self.colorize_logging = true + + class_attribute :logger + + class << self + remove_method :logger + def logger + @logger ||= Rails.logger if defined?(Rails) + end + + def attach_to(namespace, log_subscriber=new, notifier=ActiveSupport::Notifications) + log_subscribers << log_subscriber + @@flushable_loggers = nil - log_subscriber.public_methods(false).each do |event| - next if 'call' == event.to_s + log_subscriber.public_methods(false).each do |event| + next if 'call' == event.to_s - notifier.subscribe("#{event}.#{namespace}", log_subscriber) + notifier.subscribe("#{event}.#{namespace}", log_subscriber) + end end - end - def self.log_subscribers - @@log_subscribers ||= [] - end + def log_subscribers + @@log_subscribers ||= [] + end - def self.flushable_loggers - @@flushable_loggers ||= begin - loggers = log_subscribers.map(&:logger) - loggers.uniq! - loggers.select { |l| l.respond_to?(:flush) } + def flushable_loggers + @@flushable_loggers ||= begin + loggers = log_subscribers.map(&:logger) + loggers.uniq! + loggers.select { |l| l.respond_to?(:flush) } + end end - end - # Flush all log_subscribers' logger. - def self.flush_all! - flushable_loggers.each(&:flush) + # Flush all log_subscribers' logger. + def flush_all! + flushable_loggers.each(&:flush) + end end def call(message, *args) |