Sha256: 28ec40bdafb40e7c6cfaad7c6c22b6688a8fb3849a2424055c14fc57f59ecc33
Contents?: true
Size: 1.6 KB
Versions: 2
Compression:
Stored size: 1.6 KB
Contents
# typed: false require 'datadog/tracing' 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.message}") false end def datadog_trace_log_hash(correlation) { # Adds IDs as tags to log output dd: { # To preserve precision during JSON serialization, use strings for large numbers trace_id: correlation.trace_id.to_s, span_id: correlation.span_id.to_s, env: correlation.env.to_s, service: correlation.service.to_s, version: correlation.version.to_s }, ddsource: ['ruby'] } end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ddtrace-1.0.0 | lib/datadog/tracing/contrib/rails/log_injection.rb |
ddtrace-1.0.0.beta2 | lib/datadog/tracing/contrib/rails/log_injection.rb |