git.colasdn.top/newrelic/go-agent@v3.26.0+incompatible/_integrations/logcontext/logcontext.go (about) 1 // Copyright 2020 New Relic Corporation. All rights reserved. 2 // SPDX-License-Identifier: Apache-2.0 3 4 package logcontext 5 6 import newrelic "github.com/newrelic/go-agent" 7 8 // Keys used for logging context JSON. 9 const ( 10 KeyFile = "file.name" 11 KeyLevel = "log.level" 12 KeyLine = "line.number" 13 KeyMessage = "message" 14 KeyMethod = "method.name" 15 KeyTimestamp = "timestamp" 16 KeyTraceID = "trace.id" 17 KeySpanID = "span.id" 18 KeyEntityName = "entity.name" 19 KeyEntityType = "entity.type" 20 KeyEntityGUID = "entity.guid" 21 KeyHostname = "hostname" 22 ) 23 24 func metadataMapField(m map[string]interface{}, key, val string) { 25 if val != "" { 26 m[key] = val 27 } 28 } 29 30 // AddLinkingMetadata adds the LinkingMetadata into a map. Only non-empty 31 // string fields are included in the map. The specific key names facilitate 32 // agent logs in context. These keys are: "trace.id", "span.id", 33 // "entity.name", "entity.type", "entity.guid", and "hostname". 34 func AddLinkingMetadata(m map[string]interface{}, md newrelic.LinkingMetadata) { 35 metadataMapField(m, KeyTraceID, md.TraceID) 36 metadataMapField(m, KeySpanID, md.SpanID) 37 metadataMapField(m, KeyEntityName, md.EntityName) 38 metadataMapField(m, KeyEntityType, md.EntityType) 39 metadataMapField(m, KeyEntityGUID, md.EntityGUID) 40 metadataMapField(m, KeyHostname, md.Hostname) 41 }