File tree Expand file tree Collapse file tree 2 files changed +22
-5
lines changed
lib/rails_semantic_logger/active_job Expand file tree Collapse file tree 2 files changed +22
-5
lines changed Original file line number Diff line number Diff line change @@ -4,8 +4,23 @@ module RailsSemanticLogger
4
4
module ActiveJob
5
5
class LogSubscriber < ::ActiveSupport ::LogSubscriber
6
6
def enqueue ( event )
7
- log_with_formatter event : event do |fmt |
8
- { message : "Enqueued #{ fmt . job_info } " }
7
+ ex = event . payload [ :exception_object ]
8
+
9
+ if ex
10
+ log_with_formatter level : :error , event : event do |fmt |
11
+ {
12
+ message : "Failed enqueuing #{ fmt . job_info } (#{ ex . class } (#{ ex . message } )" ,
13
+ exception : ex
14
+ }
15
+ end
16
+ elsif event . payload [ :aborted ]
17
+ log_with_formatter level : :info , event : event do |fmt |
18
+ { message : "Failed enqueuing #{ fmt . job_info } , a before_enqueue callback halted the enqueuing execution." }
19
+ end
20
+ else
21
+ log_with_formatter event : event do |fmt |
22
+ { message : "Enqueued #{ fmt . job_info } " }
23
+ end
9
24
end
10
25
end
11
26
Original file line number Diff line number Diff line change 1
1
require_relative "test_helper"
2
+ require 'pry'
2
3
3
4
class ActiveJobTest < Minitest ::Test
4
5
if defined? ( ActiveJob )
@@ -142,7 +143,7 @@ def id
142
143
messages [ 0 ] ,
143
144
level : :error ,
144
145
name : "Rails" ,
145
- message_includes : "Error enqueuing ActiveJobTest::MyJob" ,
146
+ message_includes : "Failed enqueuing ActiveJobTest::MyJob" ,
146
147
payload_includes : {
147
148
job_class : "ActiveJobTest::MyJob" ,
148
149
queue : "my_jobs" ,
@@ -176,15 +177,16 @@ def id
176
177
177
178
assert_semantic_logger_event (
178
179
messages [ 0 ] ,
179
- level : :error ,
180
+ level : :info ,
180
181
name : "Rails" ,
181
- message_includes : "Failed enqueuing ActiveJobTest::MyJob, a before_enqueue callback halted the enqueuing execution. " ,
182
+ message_includes : "Failed enqueuing ActiveJobTest::MyJob" ,
182
183
payload_includes : {
183
184
job_class : "ActiveJobTest::MyJob" ,
184
185
queue : "my_jobs" ,
185
186
event_name : "enqueue.active_job"
186
187
}
187
188
)
189
+ assert_match /Failed enqueuing .*, a before_enqueue callback halted the enqueuing execution/ , messages [ 0 ] . message
188
190
assert_includes messages [ 0 ] . payload , :job_id
189
191
end
190
192
end
You can’t perform that action at this time.
0 commit comments