aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2014-12-05 11:05:15 -0200
committerDavid Heinemeier Hansson <david@loudthinking.com>2014-12-05 11:05:15 -0200
commitad4935f12745e36c70f7fe15e920371a7f107f2a (patch)
tree75bbb18243b4b10f30908cc4fec207f72b1cb7f8
parent95ddfc4e5840ca88e559157ca105e0042eb5942b (diff)
parente2fffbff98a3c60d3efb8d98a3554bea28dca532 (diff)
downloadrails-ad4935f12745e36c70f7fe15e920371a7f107f2a.tar.gz
rails-ad4935f12745e36c70f7fe15e920371a7f107f2a.tar.bz2
rails-ad4935f12745e36c70f7fe15e920371a7f107f2a.zip
Merge pull request #17817 from aripollak/hide-activejob-args
GlobalID objects are logged by their URI, not #inspect on the object, to prevent logging private data
-rw-r--r--activejob/lib/active_job/logging.rb7
-rw-r--r--activejob/test/cases/logging_test.rb8
2 files changed, 14 insertions, 1 deletions
diff --git a/activejob/lib/active_job/logging.rb b/activejob/lib/active_job/logging.rb
index 21d2fda3ff..cd29e6908e 100644
--- a/activejob/lib/active_job/logging.rb
+++ b/activejob/lib/active_job/logging.rb
@@ -85,7 +85,12 @@ module ActiveJob
end
def args_info(job)
- job.arguments.any? ? " with arguments: #{job.arguments.map(&:inspect).join(", ")}" : ""
+ if job.arguments.any?
+ ' with arguments: ' +
+ job.arguments.map { |arg| arg.try(:to_global_id).try(:to_s) || arg.inspect }.join(', ')
+ else
+ ''
+ end
end
def scheduled_at(event)
diff --git a/activejob/test/cases/logging_test.rb b/activejob/test/cases/logging_test.rb
index 3d4e561117..745aedb6bd 100644
--- a/activejob/test/cases/logging_test.rb
+++ b/activejob/test/cases/logging_test.rb
@@ -65,6 +65,14 @@ class AdapterTest < ActiveSupport::TestCase
LoggingJob.queue_name = original_queue_name
end
+ def test_globalid_parameter_logging
+ person = Person.new(123)
+ LoggingJob.perform_later person
+ assert_match(%r{Enqueued.*gid://aj/Person/123}, @logger.messages)
+ assert_match(%r{Dummy, here is it: #<Person:.*>}, @logger.messages)
+ assert_match(%r{Performing.*gid://aj/Person/123}, @logger.messages)
+ end
+
def test_enqueue_job_logging
HelloJob.perform_later "Cristian"
assert_match(/Enqueued HelloJob \(Job ID: .*?\) to .*?:.*Cristian/, @logger.messages)