Class: Sentry::Rails::LogSubscribers::ActionMailerSubscriber
- Inherits:
-
Sentry::Rails::LogSubscriber
- Object
- ActiveSupport::LogSubscriber
- Sentry::Rails::LogSubscriber
- Sentry::Rails::LogSubscribers::ActionMailerSubscriber
- Includes:
- ParameterFilter
- Defined in:
- lib/sentry/rails/log_subscribers/action_mailer_subscriber.rb
Overview
LogSubscriber for ActionMailer events that captures email delivery and processing events using Sentry’s structured logging system.
This subscriber captures deliver.action_mailer and process.action_mailer events and formats them with relevant email information while respecting PII settings.
Constant Summary
Constants included from ParameterFilter
Constants inherited from Sentry::Rails::LogSubscriber
Sentry::Rails::LogSubscriber::ORIGIN
Instance Method Summary collapse
-
#deliver(event) ⇒ Object
Handle deliver.action_mailer events.
-
#process(event) ⇒ Object
Handle process.action_mailer events.
Methods included from ParameterFilter
backend, #filter_sensitive_params
Methods inherited from Sentry::Rails::LogSubscriber
Instance Method Details
#deliver(event) ⇒ Object
Handle deliver.action_mailer events
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/sentry/rails/log_subscribers/action_mailer_subscriber.rb', line 28 def deliver(event) payload = event.payload mailer = payload[:mailer] attributes = { mailer: mailer, duration_ms: duration_ms(event), perform_deliveries: payload[:perform_deliveries] } attributes[:delivery_method] = payload[:delivery_method] if payload[:delivery_method] attributes[:date] = payload[:date].to_s if payload[:date] if Sentry.configuration.send_default_pii attributes[:message_id] = payload[:message_id] if payload[:message_id] end = "Email delivered via #{mailer}" # Log the structured event log_structured_event( message: , level: :info, attributes: attributes ) end |
#process(event) ⇒ Object
Handle process.action_mailer events
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/sentry/rails/log_subscribers/action_mailer_subscriber.rb', line 59 def process(event) payload = event.payload mailer = payload[:mailer] action = payload[:action] duration = duration_ms(event) attributes = { mailer: mailer, action: action, duration_ms: duration } if Sentry.configuration.send_default_pii && payload[:params] filtered_params = filter_sensitive_params(payload[:params]) attributes[:params] = filtered_params unless filtered_params.empty? end = "#{mailer}##{action}" log_structured_event( message: , level: :info, attributes: attributes ) end |