File: structured_logging.rb

package info (click to toggle)
ruby-sentry-rails 5.28.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 300 kB
  • sloc: ruby: 1,849; makefile: 7; sh: 4
file content (32 lines) | stat: -rw-r--r-- 1,083 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# frozen_string_literal: true

require "sentry/rails/log_subscriber"
require "sentry/rails/log_subscribers/action_controller_subscriber"
require "sentry/rails/log_subscribers/active_record_subscriber"
require "sentry/rails/log_subscribers/active_job_subscriber"
require "sentry/rails/log_subscribers/action_mailer_subscriber"

module Sentry
  module Rails
    module StructuredLogging
      class << self
        def attach(config)
          config.subscribers.each do |component, subscriber_class|
            subscriber_class.attach_to component
          end
        rescue => e
          Sentry.configuration.sdk_logger.error("Failed to attach structured loggers: #{e.message}")
          Sentry.configuration.sdk_logger.error(e.backtrace.join("\n"))
        end

        def detach(config)
          config.subscribers.each do |component, subscriber_class|
            subscriber_class.detach_from component
          end
        rescue => e
          Sentry.configuration.sdk_logger.debug("Error during detaching loggers: #{e.message}")
        end
      end
    end
  end
end