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