Sha256: b174b22405868749fa5278f910c94104563978af15f21558c49a984e9045c4ad

Contents?: true

Size: 1.21 KB

Versions: 24

Compression:

Stored size: 1.21 KB

Contents

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

24 entries across 24 versions & 1 rubygems

Version Path
ddtrace-1.23.3 lib/datadog/core/logger.rb
ddtrace-1.23.2 lib/datadog/core/logger.rb
ddtrace-1.23.1 lib/datadog/core/logger.rb
ddtrace-1.22.0 lib/datadog/core/logger.rb
ddtrace-1.21.1 lib/datadog/core/logger.rb
ddtrace-1.21.0 lib/datadog/core/logger.rb
ddtrace-1.20.0 lib/datadog/core/logger.rb
ddtrace-1.19.0 lib/datadog/core/logger.rb
ddtrace-1.18.0 lib/datadog/core/logger.rb
ddtrace-1.17.0 lib/datadog/core/logger.rb
ddtrace-1.16.2 lib/datadog/core/logger.rb
ddtrace-1.16.1 lib/datadog/core/logger.rb
ddtrace-1.16.0 lib/datadog/core/logger.rb
ddtrace-1.15.0 lib/datadog/core/logger.rb
ddtrace-1.14.0 lib/datadog/core/logger.rb
ddtrace-1.13.1 lib/datadog/core/logger.rb
ddtrace-1.13.0 lib/datadog/core/logger.rb
ddtrace-1.12.1 lib/datadog/core/logger.rb
ddtrace-1.12.0 lib/datadog/core/logger.rb
ddtrace-1.11.1 lib/datadog/core/logger.rb