diff options
-rw-r--r-- | activesupport/lib/active_support/queueing.rb | 7 | ||||
-rw-r--r-- | railties/lib/rails/application/finisher.rb | 1 | ||||
-rw-r--r-- | railties/test/application/queue_test.rb | 1 |
3 files changed, 7 insertions, 2 deletions
diff --git a/activesupport/lib/active_support/queueing.rb b/activesupport/lib/active_support/queueing.rb index 6de038ee0e..064f009f13 100644 --- a/activesupport/lib/active_support/queueing.rb +++ b/activesupport/lib/active_support/queueing.rb @@ -64,9 +64,12 @@ module ActiveSupport # queue and joins the thread, which will ensure that all jobs # are executed before the process finally dies. class ThreadedQueueConsumer + attr_accessor :logger + def initialize(queue, options = {}) @queue = queue - @logger = options[:logger] || Logger.new($stderr) + @logger = options[:logger] + @fallback_logger = Logger.new($stderr) end def start @@ -96,7 +99,7 @@ module ActiveSupport end def handle_exception(job, exception) - @logger.error "Job Error: #{job.inspect}\n#{exception.message}\n#{exception.backtrace.join("\n")}" + (logger || @fallback_logger).error "Job Error: #{job.inspect}\n#{exception.message}\n#{exception.backtrace.join("\n")}" end end end diff --git a/railties/lib/rails/application/finisher.rb b/railties/lib/rails/application/finisher.rb index c520f7af9d..2d87b8594a 100644 --- a/railties/lib/rails/application/finisher.rb +++ b/railties/lib/rails/application/finisher.rb @@ -99,6 +99,7 @@ module Rails initializer :activate_queue_consumer do |app| if config.queue.class == ActiveSupport::Queue app.queue_consumer = config.queue_consumer || config.queue.consumer + app.queue_consumer.logger ||= Rails.logger if app.queue_consumer.respond_to?(:logger=) app.queue_consumer.start at_exit { app.queue_consumer.shutdown } end diff --git a/railties/test/application/queue_test.rb b/railties/test/application/queue_test.rb index b0b3cf18e9..219a35da35 100644 --- a/railties/test/application/queue_test.rb +++ b/railties/test/application/queue_test.rb @@ -78,6 +78,7 @@ module ApplicationTests assert_nil Rails.application.config.queue_consumer assert_kind_of ActiveSupport::ThreadedQueueConsumer, Rails.application.queue_consumer + assert_equal Rails.logger, Rails.application.queue_consumer.logger end test "attempting to marshal a queue will raise an exception" do |