Sha256: f64d531d84351d3c34cd19643101e810283c777165c397668f70f031edbb0123

Contents?: true

Size: 1.07 KB

Versions: 12

Compression:

Stored size: 1.07 KB

Contents

# typed: false

module Datadog
  module Tracing
    module Contrib
      # Instrument Rails.
      module Rails
        # Rails log injection helper methods
        module LogInjection
          module_function

          def add_as_tagged_logging_logger(app)
            # we want to check if the current logger is a tagger logger instance
            # log_tags defaults to nil so we have to set as an array if nothing exists yet
            if (log_tags = app.config.log_tags).nil?
              app.config.log_tags = [proc { Tracing.log_correlation }]
            # if existing log_tags configuration exists, append to the end of the array
            elsif log_tags.is_a?(Array)
              app.config.log_tags << proc { Tracing.log_correlation }
            end
          rescue StandardError => e
            # TODO: can we use Datadog.logger at this point?
            Datadog.logger.warn(
              "Unable to add Datadog Trace context to ActiveSupport::TaggedLogging: #{e.class.name} #{e.message}"
            )
            false
          end
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
ddtrace-1.9.0 lib/datadog/tracing/contrib/rails/log_injection.rb
ddtrace-1.8.0 lib/datadog/tracing/contrib/rails/log_injection.rb
ddtrace-1.7.0 lib/datadog/tracing/contrib/rails/log_injection.rb
ddtrace-1.6.1 lib/datadog/tracing/contrib/rails/log_injection.rb
ddtrace-1.6.0 lib/datadog/tracing/contrib/rails/log_injection.rb
ddtrace-1.5.2 lib/datadog/tracing/contrib/rails/log_injection.rb
ddtrace-1.5.1 lib/datadog/tracing/contrib/rails/log_injection.rb
ddtrace-1.5.0 lib/datadog/tracing/contrib/rails/log_injection.rb
ddtrace-1.4.2 lib/datadog/tracing/contrib/rails/log_injection.rb
ddtrace-1.4.1 lib/datadog/tracing/contrib/rails/log_injection.rb
ddtrace-1.4.0 lib/datadog/tracing/contrib/rails/log_injection.rb
ddtrace-1.3.0 lib/datadog/tracing/contrib/rails/log_injection.rb