From a8e2fb5b275d75c7a12cabf2028f9ecb2a7d9c04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Fran=C3=A7a?= Date: Fri, 17 Jun 2016 13:07:33 -0400 Subject: [PATCH] Merge pull request #25426 from Shopify/fix-activejob-logger Fix jobs overriding AJ::Base#logger --- activejob/lib/active_job/logging.rb | 2 +- activejob/test/cases/logging_test.rb | 7 ++++++- activejob/test/jobs/overridden_logging_job.rb | 9 +++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 activejob/test/jobs/overridden_logging_job.rb diff --git a/activejob/lib/active_job/logging.rb b/activejob/lib/active_job/logging.rb index 605057d1e8264..d5c7920131aef 100644 --- a/activejob/lib/active_job/logging.rb +++ b/activejob/lib/active_job/logging.rb @@ -41,7 +41,7 @@ module Logging #:nodoc: def tag_logger(*tags) if logger.respond_to?(:tagged) tags.unshift "ActiveJob" unless logger_tagged_by_active_job? - ActiveJob::Base.logger.tagged(*tags){ yield } + logger.tagged(*tags){ yield } else yield end diff --git a/activejob/test/cases/logging_test.rb b/activejob/test/cases/logging_test.rb index 820e9112de9b9..bf8a66432af34 100644 --- a/activejob/test/cases/logging_test.rb +++ b/activejob/test/cases/logging_test.rb @@ -3,6 +3,7 @@ require 'active_support/core_ext/numeric/time' require 'jobs/hello_job' require 'jobs/logging_job' +require 'jobs/overridden_logging_job' require 'jobs/nested_job' require 'models/person' @@ -41,7 +42,6 @@ def set_logger(logger) ActiveJob::Base.logger = logger end - def test_uses_active_job_as_tag HelloJob.perform_later "Cristian" assert_match(/\[ActiveJob\]/, @logger.messages) @@ -119,4 +119,9 @@ def test_enqueue_in_job_logging rescue NotImplementedError skip end + + def test_for_tagged_logger_support_is_consistent + set_logger ::Logger.new(nil) + OverriddenLoggingJob.perform_later "Dummy" + end end diff --git a/activejob/test/jobs/overridden_logging_job.rb b/activejob/test/jobs/overridden_logging_job.rb new file mode 100644 index 0000000000000..2b17a65142102 --- /dev/null +++ b/activejob/test/jobs/overridden_logging_job.rb @@ -0,0 +1,9 @@ +class OverriddenLoggingJob < ActiveJob::Base + def perform(dummy) + logger.info "Dummy, here is it: #{dummy}" + end + + def logger + @logger ||= ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(nil)) + end +end