class RailsSemanticLogger::ActionMailer::LogSubscriber
Public Instance Methods
deliver(event)
click to toggle source
# File lib/rails_semantic_logger/action_mailer/log_subscriber.rb, line 7 def deliver(event) ex = event.payload[:exception_object] message_id = event.payload[:message_id] duration = event.duration.round(1) if ex log_with_formatter event: event, log_duration: true, level: :error do |_fmt| { message: "Error delivering mail #{message_id} (#{duration}ms)", exception: ex } end else message = if event.payload[:perform_deliveries] "Delivered mail #{message_id} (#{duration}ms)" else "Skipped delivery of mail #{message_id} as `perform_deliveries` is false" end log_with_formatter event: event, log_duration: true do |_fmt| {message: message} end end end
process(event)
click to toggle source
An email was generated.
# File lib/rails_semantic_logger/action_mailer/log_subscriber.rb, line 33 def process(event) mailer = event.payload[:mailer] action = event.payload[:action] duration = event.duration.round(1) log_with_formatter event: event do |_fmt| {message: "#{mailer}##{action}: processed outbound mail in #{duration}ms"} end end
Private Instance Methods
log_with_formatter(level: :info, **kw_args) { |fmt| ... }
click to toggle source
# File lib/rails_semantic_logger/action_mailer/log_subscriber.rb, line 122 def log_with_formatter(level: :info, **kw_args) fmt = EventFormatter.new(**kw_args) msg = yield fmt logger.public_send(level, **msg, payload: fmt.payload) end
logger()
click to toggle source
# File lib/rails_semantic_logger/action_mailer/log_subscriber.rb, line 128 def logger ::ActionMailer::Base.logger end