module NewRelic::TelemetrySdk::Logger

The Logger Singleton object manages the logger for the SDK and is fully configurable by the user.

Any Ruby class that responds to the common methods of the Ruby standard {::Logger} class can be configured for the SDk.

The logger may be configured like this: @example with configure block

require 'logger'

logger = ::Logger.new(STDOUT)
logger.level = Logger::WARN

NewRelic::TelemetrySdk.configure do |config|
  config.logger = logger
end

@example without configure block

require 'logger'

NewRelic::TelemetrySdk.logger = ::Logger.new("/dev/null")

@api public

Constants

LOG_LEVELS

Public Class Methods

logger() click to toggle source
# File lib/newrelic/telemetry_sdk/logger.rb, line 43
def self.logger
  @logger ||= ::Logger.new(STDOUT)
end
logger=(logger) click to toggle source
# File lib/newrelic/telemetry_sdk/logger.rb, line 39
def self.logger= logger
  @logger = logger
end

Public Instance Methods

clear_already_logged() click to toggle source
# File lib/newrelic/telemetry_sdk/logger.rb, line 56
def clear_already_logged
  logger_mutex.synchronize do
    @already_logged = {}
  end
end
log_error(message, exception = nil) click to toggle source
# File lib/newrelic/telemetry_sdk/logger.rb, line 62
def log_error(message, exception = nil)
  logger.error message
  logger.error exception if exception
end
log_once(level, key, *msgs) click to toggle source
# File lib/newrelic/telemetry_sdk/logger.rb, line 47
def log_once(level, key, *msgs)
  logger_mutex.synchronize do
    return if already_logged.include?(key)
    already_logged[key] = true
  end

  logger.send(level, *msgs)
end
logger() click to toggle source
# File lib/newrelic/telemetry_sdk/logger.rb, line 67
def logger
  Logger.logger
end
logger=(logger) click to toggle source
# File lib/newrelic/telemetry_sdk/logger.rb, line 71
def logger= logger
  Logger.logger = logger
end

Private Instance Methods

already_logged() click to toggle source
# File lib/newrelic/telemetry_sdk/logger.rb, line 81
def already_logged
  @already_logged ||= {}
end
logger_mutex() click to toggle source
# File lib/newrelic/telemetry_sdk/logger.rb, line 77
def logger_mutex
  @logger_mutex ||= Mutex.new
end