class RailsSemanticLogger::ActiveJob::LogSubscriber::EventFormatter
Attributes
event[R]
Public Class Methods
new(event:, log_duration: false)
click to toggle source
# File lib/rails_semantic_logger/active_job/log_subscriber.rb, line 73 def initialize(event:, log_duration: false) @event = event @log_duration = log_duration end
Public Instance Methods
job_info()
click to toggle source
# File lib/rails_semantic_logger/active_job/log_subscriber.rb, line 78 def job_info "#{job.class.name} (Job ID: #{job.job_id}) to #{queue_name}" end
payload()
click to toggle source
# File lib/rails_semantic_logger/active_job/log_subscriber.rb, line 82 def payload {}.tap do |h| h[:event_name] = event.name h[:adapter] = adapter_name h[:queue] = job.queue_name h[:job_class] = job.class.name h[:job_id] = job.job_id h[:provider_job_id] = job.try(:provider_job_id) # Not available in Rails 4.2 h[:duration] = event.duration.round(2) if log_duration? h[:arguments] = formatted_args end end
queue_name()
click to toggle source
# File lib/rails_semantic_logger/active_job/log_subscriber.rb, line 95 def queue_name adapter_name + "(#{job.queue_name})" end
scheduled_at()
click to toggle source
# File lib/rails_semantic_logger/active_job/log_subscriber.rb, line 99 def scheduled_at Time.at(event.payload[:job].scheduled_at).utc end
Private Instance Methods
adapter_name()
click to toggle source
# File lib/rails_semantic_logger/active_job/log_subscriber.rb, line 111 def adapter_name event.payload[:adapter].class.name.demodulize.remove("Adapter") end
format(arg)
click to toggle source
# File lib/rails_semantic_logger/active_job/log_subscriber.rb, line 123 def format(arg) case arg when Hash arg.transform_values { |value| format(value) } when Array arg.map { |value| format(value) } when GlobalID::Identification begin arg.to_global_id rescue StandardError arg end else arg end end
formatted_args()
click to toggle source
# File lib/rails_semantic_logger/active_job/log_subscriber.rb, line 115 def formatted_args if defined?(job.class.log_arguments?) && !job.class.log_arguments? "" else JSON.pretty_generate(job.arguments.map { |arg| format(arg) }) end end
job()
click to toggle source
# File lib/rails_semantic_logger/active_job/log_subscriber.rb, line 107 def job event.payload[:job] end
log_duration?()
click to toggle source
# File lib/rails_semantic_logger/active_job/log_subscriber.rb, line 140 def log_duration? @log_duration end