module NewRelic::Agent::LocalLogDecorator

This module contains helper methods related to decorating log messages

Public Instance Methods

decorate(message) click to toggle source
# File lib/new_relic/agent/local_log_decorator.rb, line 11
def decorate(message)
  return message unless decorating_enabled?

  metadata = NewRelic::Agent.linking_metadata

  if message.is_a?(Hash)
    message.merge!(metadata) unless message.frozen?
    return
  end

  formatted_metadata = " NR-LINKING|#{metadata[ENTITY_GUID_KEY]}|#{metadata[HOSTNAME_KEY]}|" \
                       "#{metadata[TRACE_ID_KEY]}|#{metadata[SPAN_ID_KEY]}|" \
                       "#{escape_entity_name(metadata[ENTITY_NAME_KEY])}|"

  message.partition("\n").insert(1, formatted_metadata).join
end

Private Instance Methods

decorating_enabled?() click to toggle source
# File lib/new_relic/agent/local_log_decorator.rb, line 30
def decorating_enabled?
  NewRelic::Agent.config[:'application_logging.enabled'] &&
    (NewRelic::Agent::Instrumentation::Logger.enabled? ||
      NewRelic::Agent::Instrumentation::LogStasher.enabled?) &&
    NewRelic::Agent.config[:'application_logging.local_decorating.enabled']
end
escape_entity_name(entity_name) click to toggle source
# File lib/new_relic/agent/local_log_decorator.rb, line 37
def escape_entity_name(entity_name)
  return unless entity_name

  URI::DEFAULT_PARSER.escape(entity_name)
end