diff --git a/activejob/lib/active_job/log_subscriber.rb b/activejob/lib/active_job/log_subscriber.rb index 5982fe3ef244..6d7bc987b2de 100644 --- a/activejob/lib/active_job/log_subscriber.rb +++ b/activejob/lib/active_job/log_subscriber.rb @@ -76,7 +76,9 @@ def enqueue_all(event) def perform_start(event) info do job = event.payload[:job] - "Performing #{job.class.name} (Job ID: #{job.job_id}) from #{queue_name(event)} enqueued at #{job.enqueued_at.utc.iso8601(9)}" + args_info(job) + enqueue_info = job.enqueued_at.present? ? " enqueued at #{job.enqueued_at.utc.iso8601(9)}" : "" + + "Performing #{job.class.name} (Job ID: #{job.job_id}) from #{queue_name(event)}" + enqueue_info + args_info(job) end end subscribe_log_level :perform_start, :info diff --git a/activejob/test/cases/logging_test.rb b/activejob/test/cases/logging_test.rb index 6669b5ce0852..b888e9c91e55 100644 --- a/activejob/test/cases/logging_test.rb +++ b/activejob/test/cases/logging_test.rb @@ -144,6 +144,15 @@ def test_perform_job_logging end end + def test_perform_job_logging_when_job_is_not_enqueued + perform_enqueued_jobs do + LoggingJob.perform_now "Dummy" + + assert_match(/Performing LoggingJob \(Job ID: .*?\) from .*? with arguments:.*Dummy/, @logger.messages) + assert_no_match(/enqueued at /, @logger.messages) + end + end + def test_perform_job_log_error_when_callback_chain_is_halted subscribed { AbortBeforeEnqueueJob.perform_now } assert_match(/Error performing AbortBeforeEnqueueJob.* a before_perform callback halted/, @logger.messages)