Permalink
Browse files

avoid proc activation every time a log message is made

  • Loading branch information...
1 parent 8cbb89c commit ad8f4dfc50fe3858b80aeceb6d9240d2af4a2fea @tenderlove tenderlove committed Jul 19, 2010
Showing with 14 additions and 9 deletions.
  1. +14 −9 activesupport/lib/active_support/log_subscriber.rb
@@ -63,15 +63,9 @@ def self.attach_to(namespace, log_subscriber=new, notifier=ActiveSupport::Notifi
@@flushable_loggers = nil
log_subscriber.public_methods(false).each do |event|
- notifier.subscribe("#{event}.#{namespace}") do |*args|
- next if log_subscriber.logger.nil?
-
- begin
- log_subscriber.send(event, ActiveSupport::Notifications::Event.new(*args))
- rescue Exception => e
- log_subscriber.logger.error "Could not log #{args[0].inspect} event. #{e.class}: #{e.message}"
- end
- end
+ next if 'call' == event.to_s
+
+ notifier.subscribe("#{event}.#{namespace}", log_subscriber)
end
end
@@ -92,6 +86,17 @@ def self.flush_all!
flushable_loggers.each(&:flush)
end
+ def call(message, *args)
+ return unless logger
+
+ method = message.split('.').first
+ begin
+ send(method, ActiveSupport::Notifications::Event.new(message, *args))
+ rescue Exception => e
+ logger.error "Could not log #{message.inspect} event. #{e.class}: #{e.message}"
+ end
+ end
+
protected
%w(info debug warn error fatal unknown).each do |level|

0 comments on commit ad8f4df

Please sign in to comment.