Add easier discoverability and clarity to the MDC appender docs (#8638)

Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
This commit is contained in:
Stephen Cprek 2023-06-27 06:14:04 -04:00 committed by GitHub
parent f197befb50
commit a60a324189
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 15 deletions

View File

@ -19,21 +19,27 @@ event's MDC copy:
(same as `Span.current().getSpanContext().getTraceFlags().asHex()`).
Those three pieces of information can be included in log statements produced by the logging library
by specifying them in the pattern/format.
by specifying them in the pattern/format. This way any services or tools that parse the application
logs can correlate traces/spans with log statements.
Tip: for Spring Boot configuration which uses logback, you can add MDC to log lines by overriding only the `logging.pattern.level`:
> Note: If the current `Span` is invalid, the OpenTelemetry appender will not inject any trace information.
## Supported logging libraries
> Note: There are also log appenders for exporting logs to OpenTelemetry, not to be confused with the MDC appenders.
| Library | Auto-instrumented versions | Standalone Library Instrumentation |
|---------|----------------------------|--------------------------------------------------------------------------------------|
| Log4j 1 | 1.2+ | |
| Log4j 2 | 2.7+ | [opentelemetry-log4j-context-data-2.17-autoconfigure](../instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure) | |
| Logback | 1.0+ | [opentelemetry-logback-mdc-1.0](../instrumentation/logback/logback-mdc-1.0/library) |
## Frameworks
### Spring Boot
For Spring Boot configuration which uses logback, you can add MDC to log lines by overriding only the `logging.pattern.level`:
```properties
logging.pattern.level = trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p
```
This way any services or tools that parse the application logs can correlate traces/spans with log
statements.
## Supported logging libraries
| Library | Version |
|---------|---------|
| Log4j 1 | 1.2+ |
| Log4j 2 | 2.7+ |
| Logback | 1.0+ |

View File

@ -32,7 +32,7 @@ dependencies {
### Usage
logback.xml:
The following demonstrates how you might configure the appender in your `logback.xml` configuration:
```xml
<?xml version="1.0" encoding="UTF-8"?>
@ -47,10 +47,18 @@ logback.xml:
<appender name="OTEL" class="io.opentelemetry.instrumentation.logback.mdc.v1_0.OpenTelemetryAppender">
<appender-ref ref="CONSOLE"/>
</appender>
...
<!-- Use the wrapped "OTEL" appender instead of the original "CONSOLE" one -->
<root level="INFO">
<appender-ref ref="OTEL"/>
</root>
</configuration>
```
> It's important to note you can also use other encoders in the `ConsoleAppender` like [logstash-logback-encoder](https://github.com/logfellow/logstash-logback-encoder).
This can be helpful when the `Span` is invalid and the `trace_id`, `span_id`, and `trace_flags` are all `null` and are hidden entirely from the logs.
Logging events will automatically have context information from the span context injected. The
following attributes are available for use: