class LogStasher::ActiveSupport::MailerLogSubscriber

Constants

MAILER_FIELDS

Public Instance Methods

deliver(event) click to toggle source
# File lib/logstasher/active_support/mailer_log_subscriber.rb, line 11
def deliver(event)
  process_event(event, %w[mailer deliver])
end
logger() click to toggle source
# File lib/logstasher/active_support/mailer_log_subscriber.rb, line 28
def logger
  LogStasher.logger
end
process(event) click to toggle source
# File lib/logstasher/active_support/mailer_log_subscriber.rb, line 24
def process(event)
  process_event(event, %w[mailer process])
end
receive(event) click to toggle source

This method will only be invoked on Rails 6.0 and prior. Starting in Rails 6.0 the receive method was deprecated in favor of ActionMailbox. The receive method was removed from ActionMailer in Rails 6.1, and there doesn't appear to be corresponding instrumentation for ActionMailbox.

# File lib/logstasher/active_support/mailer_log_subscriber.rb, line 20
def receive(event)
  process_event(event, %w[mailer receive])
end

Private Instance Methods

extract_metadata(payload) click to toggle source
# File lib/logstasher/active_support/mailer_log_subscriber.rb, line 39
def extract_metadata(payload)
  payload.slice(*MAILER_FIELDS)
end
process_event(event, tags) click to toggle source
# File lib/logstasher/active_support/mailer_log_subscriber.rb, line 34
def process_event(event, tags)
  data = LogStasher.request_context.merge(extract_metadata(event.payload))
  logger << "#{LogStasher.build_logstash_event(data, tags).to_json}\n"
end