Class: LogStasher::ActiveJob::LogSubscriber

Inherits:
ActiveJob::Logging::LogSubscriber
  • Object
show all
Defined in:
lib/logstasher/active_job/log_subscriber.rb

Instance Method Summary collapse

Instance Method Details

#enqueue(event) ⇒ Object



11
12
13
# File 'lib/logstasher/active_job/log_subscriber.rb', line 11

def enqueue(event)
  process_event(event, 'enqueue')
end

#enqueue_at(event) ⇒ Object



15
16
17
# File 'lib/logstasher/active_job/log_subscriber.rb', line 15

def enqueue_at(event)
  process_event(event, 'enqueue_at')
end

#loggerObject



42
43
44
# File 'lib/logstasher/active_job/log_subscriber.rb', line 42

def logger
  LogStasher.logger
end

#perform(event) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/logstasher/active_job/log_subscriber.rb', line 19

def perform(event)
  process_event(event, 'perform')

  # Revert the request id back, in the event that the inline adapter is being used or a
  # perform_now was used.
  LogStasher.request_context[:request_id] = Thread.current[:old_request_id]
  Thread.current[:old_request_id] = nil
end

#perform_start(event) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/logstasher/active_job/log_subscriber.rb', line 28

def perform_start(event)
  # Use the job_id as the request id, so that any custom logging done for a job
  # shares a request id, and has the job id in each log line.
  #
  # It's not being set when the job is enqueued, so enqueuing a job will have it's default
  # request_id. In a lot of cases, it will be because of a web request.
  #
  # Hang onto the old request id, so we can revert after the job is done being performed.
  Thread.current[:old_request_id] = LogStasher.request_context[:request_id]
  LogStasher.request_context[:request_id] = event.payload[:job].job_id

  process_event(event, 'perform_start')
end