Sha256: 5b47d80b3d00fde1afedfb6c16d20125b7c3785c6b5a7ca0b80d5fbcd88f55d9

Contents?: true

Size: 1.1 KB

Versions: 2

Compression:

Stored size: 1.1 KB

Contents

require 'opentracing'
require 'logger'

require_relative 'type_check'
require_relative 'composite_logger'

module Tracing
  class Logger < ::Logger
    include TypeCheck

    def initialize(active_span:, level: DEBUG)
      Type! active_span, Proc

      super(nil)
      @active_span = active_span
      self.level = level
    end

    def add(severity, message = nil, progname = nil)
      severity ||= Logger::Severity::UNKNOWN

      if severity < @level
        return true
      end

      if progname.nil?
        progname = @progname
      end

      if message.nil?
        if block_given?
          message = yield
        else
          message = progname
          progname = @progname
        end
      end

      span = active_span

      if span && message
        if @formatter
          span.log(event: format_message(format_severity(severity), Time.now, progname, message))
        else
          span.log(event: message, severity: format_severity(severity), progname: progname, pid: $$)
        end
      end

      true
    end

    def active_span
      @active_span.call if @active_span
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tracing-logger-1.1.1 lib/tracing/logger.rb
tracing-logger-1.1.0 lib/tracing/logger.rb