# ContextData Instrumentation for Log4j2 version 2.17 and higher This module provides a Log4j2 `ContextDataProvider` that injects trace context from active spans into log context. ## Quickstart ### Add these dependencies to your project: Replace `OPENTELEMETRY_VERSION` with the [latest release](https://search.maven.org/search?q=g:io.opentelemetry.instrumentation%20AND%20a:opentelemetry-log4j-context-data-2.17-autoconfigure). For Maven, add to your `pom.xml` dependencies: ```xml io.opentelemetry.instrumentation opentelemetry-log4j-context-data-2.17-autoconfigure OPENTELEMETRY_VERSION runtime ``` For Gradle, add to your dependencies: ```groovy runtimeOnly("io.opentelemetry.instrumentation:opentelemetry-log4j-context-data-2.17-autoconfigure:OPENTELEMETRY_VERSION") ``` ### Usage `OpenTelemetryContextDataProvider` implements the Log4j2 `ContextDataProvider` SPI, and injects the trace ID and span ID from an active span into Log4j's [context data](https://logging.apache.org/log4j/2.x/manual/thread-context.html). Log4j will automatically pick up the integration when you include this module. The following keys will be added to the context when a log statement is made when a span is active: - `trace_id` - `span_id` - `trace_flags` You can use these keys when defining an appender in your `log4j.xml` configuration, for example: ```xml ```