diff options
author | Ari Pollak <ajp@aripollak.com> | 2014-11-28 14:19:16 -0500 |
---|---|---|
committer | Ari Pollak <ajp@aripollak.com> | 2014-11-28 22:20:50 -0500 |
commit | 802630378e5ed7ffae500034bc926b8318524e43 (patch) | |
tree | 43410814836c7ac63249ae69b608e28f44770039 /activejob/lib | |
parent | dd4203cfaf8ef8f006b26542aa329b5b721701de (diff) | |
download | rails-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')
-rw-r--r-- | activejob/lib/active_job/logging.rb | 17 |
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) |