Sha256: b5cd6f94fee08b2940fe5d8611448ef141d71aeee1e7b8a97c12d10686a39227

Contents?: true

Size: 1.22 KB

Versions: 16

Compression:

Stored size: 1.22 KB

Contents

# typed: true

require 'logger'

module Datadog
  module Core
    # A custom logger with minor enhancements:
    # - progname defaults to ddtrace to clearly identify Datadog dd-trace-rb related messages
    # - adds last caller stack-trace info to know where the message comes from
    # @public_api
    class Logger < ::Logger
      # TODO: Consider renaming this to 'datadog'
      PREFIX = 'ddtrace'.freeze

      def initialize(*args, &block)
        super
        self.progname = PREFIX
        self.level = ::Logger::INFO
      end

      def add(severity, message = nil, progname = nil, &block)
        where = ''

        # We are in debug mode, or this is an error, add stack trace to help debugging
        if debug? || severity >= ::Logger::ERROR
          c = caller
          where = "(#{c[1]}) " if c.length > 1
        end

        if message.nil?
          if block
            super(severity, message, progname) do
              "[#{self.progname}] #{where}#{yield}"
            end
          else
            super(severity, message, "[#{self.progname}] #{where}#{progname}")
          end
        else
          super(severity, "[#{self.progname}] #{where}#{message}")
        end
      end

      alias log add
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
ddtrace-1.9.0 lib/datadog/core/logger.rb
ddtrace-1.8.0 lib/datadog/core/logger.rb
ddtrace-1.7.0 lib/datadog/core/logger.rb
ddtrace-1.6.1 lib/datadog/core/logger.rb
ddtrace-1.6.0 lib/datadog/core/logger.rb
ddtrace-1.5.2 lib/datadog/core/logger.rb
ddtrace-1.5.1 lib/datadog/core/logger.rb
ddtrace-1.5.0 lib/datadog/core/logger.rb
ddtrace-1.4.2 lib/datadog/core/logger.rb
ddtrace-1.4.1 lib/datadog/core/logger.rb
ddtrace-1.4.0 lib/datadog/core/logger.rb
ddtrace-1.3.0 lib/datadog/core/logger.rb
ddtrace-1.2.0 lib/datadog/core/logger.rb
ddtrace-1.1.0 lib/datadog/core/logger.rb
ddtrace-1.0.0 lib/datadog/core/logger.rb
ddtrace-1.0.0.beta2 lib/datadog/core/logger.rb