From 0bbfec84cbf898ae7327880c43f9b5c60c49d4cd Mon Sep 17 00:00:00 2001 From: sebright Date: Mon, 27 Aug 2018 09:49:05 -0700 Subject: Start adding log correlation for Log4j. (#1371) This commit takes the approach of implementing Log4j's ContextDataInjector. It inserts three keys into each log event: "`openCensusTraceId`", "`openCensusSpanId`", and "`openCensusTraceSampled`". The tracing data can be accessed with LogEvent.getContextData() or included in a layout. See https://logging.apache.org/log4j/2.x/log4j-core/apidocs/org/apache/logging/log4j/core/ContextDataInjector.html. Here is an example of a pattern layout that includes all three tracing fields and a log entry that could be produced by the layout: Pattern layout: "`%d{HH:mm:ss.SSS} [%t] traceId=%X{openCensusTraceId} spanId=%X{openCensusSpanId} sampled=%X{openCensusTraceSampled} %-5level %logger{36} - %msg%n`" Log entry: "`20:45:52.929 [main] traceId=0af7a7bef890695f1c5e85a8e7290164 spanId=d3f07c467ec2fbb2 sampled=true WARN io.opencensus.contrib.logcorrelation.log4j.demo.OpenCensusLog4jLogCorrelationDemo - my log message`" The ContextDataInjector implementation must be specified with a system property, i.e., "`-Dlog4j2.contextDataInjector=io.opencensus.contrib.logcorrelation.log4j.OpenCensusTraceContextDataInjector`". The system property "`io.opencensus.contrib.logcorrelation.log4j.OpenCensusTraceContextDataInjector.spanSelection`" controls whether tracing data is added to all spans, no spans, or only sampled spans. --- settings.gradle | 3 +++ 1 file changed, 3 insertions(+) (limited to 'settings.gradle') diff --git a/settings.gradle b/settings.gradle index fccae387..f1688b60 100644 --- a/settings.gradle +++ b/settings.gradle @@ -19,6 +19,7 @@ include ":opencensus-contrib-exemplar-util" include ":opencensus-contrib-grpc-metrics" include ":opencensus-contrib-grpc-util" include ":opencensus-contrib-http-util" +include ":opencensus-contrib-log-correlation-log4j" include ":opencensus-contrib-log-correlation-stackdriver" include ":opencensus-contrib-monitored-resource-util" include ":opencensus-contrib-spring" @@ -35,6 +36,8 @@ project(':opencensus-contrib-exemplar-util').projectDir = "$rootDir/contrib/exem project(':opencensus-contrib-grpc-metrics').projectDir = "$rootDir/contrib/grpc_metrics" as File project(':opencensus-contrib-grpc-util').projectDir = "$rootDir/contrib/grpc_util" as File project(':opencensus-contrib-http-util').projectDir = "$rootDir/contrib/http_util" as File +project(':opencensus-contrib-log-correlation-log4j').projectDir = + "$rootDir/contrib/log_correlation/log4j" as File project(':opencensus-contrib-log-correlation-stackdriver').projectDir = "$rootDir/contrib/log_correlation/stackdriver" as File project(':opencensus-contrib-monitored-resource-util').projectDir = -- cgit v1.2.3