aboutsummaryrefslogtreecommitdiffstats
path: root/activejob/lib/active_job
diff options
context:
space:
mode:
authorAri Pollak <ajp@aripollak.com>2014-11-28 14:19:16 -0500
committerAri Pollak <ajp@aripollak.com>2014-11-28 22:20:50 -0500
commit802630378e5ed7ffae500034bc926b8318524e43 (patch)
tree43410814836c7ac63249ae69b608e28f44770039 /activejob/lib/active_job
parentdd4203cfaf8ef8f006b26542aa329b5b721701de (diff)
downloadrails-802630378e5ed7ffae500034bc926b8318524e43.tar.gz
rails-802630378e5ed7ffae500034bc926b8318524e43.tar.bz2
rails-802630378e5ed7ffae500034bc926b8318524e43.zip
Hide potentially sensitive ActiveJob params from logs
* Show GlobalID instead of full object .inspect output
Diffstat (limited to 'activejob/lib/active_job')
-rw-r--r--activejob/lib/active_job/logging.rb17
1 files changed, 16 insertions, 1 deletions
diff --git a/activejob/lib/active_job/logging.rb b/activejob/lib/active_job/logging.rb
index 21d2fda3ff..74c02e149a 100644
--- a/activejob/lib/active_job/logging.rb
+++ b/activejob/lib/active_job/logging.rb
@@ -6,6 +6,8 @@ module ActiveJob
module Logging #:nodoc:
extend ActiveSupport::Concern
+ FILTERED = '[FILTERED]'.freeze
+
included do
cattr_accessor(:logger) { ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDOUT)) }
@@ -84,8 +86,21 @@ module ActiveJob
event.payload[:adapter].name.demodulize.remove('Adapter') + "(#{event.payload[:job].queue_name})"
end
+ def global_id_or_filtered(argument)
+ if argument.is_a?(GlobalID::Identification)
+ argument.to_global_id.to_s
+ else
+ FILTERED
+ end
+ 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| global_id_or_filtered(arg) }.join(', ')
+ else
+ ""
+ end
end
def scheduled_at(event)