|
8 | 8 | import static org.assertj.core.api.Assertions.assertThat;
|
9 | 9 |
|
10 | 10 | import ch.qos.logback.classic.spi.ILoggingEvent;
|
| 11 | +import ch.qos.logback.core.Appender; |
11 | 12 | import ch.qos.logback.core.read.ListAppender;
|
12 | 13 | import ch.qos.logback.core.spi.AppenderAttachable;
|
13 | 14 | import io.opentelemetry.api.OpenTelemetry;
|
|
22 | 23 | import io.opentelemetry.instrumentation.testing.junit.LibraryInstrumentationExtension;
|
23 | 24 | import io.opentelemetry.sdk.logs.data.LogRecordData;
|
24 | 25 | import java.util.HashMap;
|
| 26 | +import java.util.Iterator; |
25 | 27 | import java.util.List;
|
26 | 28 | import java.util.Map;
|
27 | 29 | import org.junit.jupiter.api.BeforeEach;
|
@@ -191,6 +193,7 @@ void shouldInitializeMdcAppender() {
|
191 | 193 | }
|
192 | 194 |
|
193 | 195 | assertThat(testing.logRecords()).isEmpty();
|
| 196 | + assertThat(CustomListAppender.lastLogHadTraceId).isTrue(); |
194 | 197 | assertThat(listAppender.list)
|
195 | 198 | .satisfiesExactly(
|
196 | 199 | event ->
|
@@ -238,13 +241,26 @@ void shouldNotInitializeMdcAppenderWhenDisabled() {
|
238 | 241 | private static ListAppender<ILoggingEvent> getListAppender() {
|
239 | 242 | Logger logger = LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
|
240 | 243 | ch.qos.logback.classic.Logger logbackLogger = (ch.qos.logback.classic.Logger) logger;
|
| 244 | + |
241 | 245 | ListAppender<ILoggingEvent> listAppender =
|
242 | 246 | (ListAppender<ILoggingEvent>) logbackLogger.getAppender("List");
|
243 | 247 | if (listAppender != null) {
|
244 | 248 | return listAppender;
|
245 | 249 | }
|
| 250 | + |
246 | 251 | AppenderAttachable<?> mdcAppender =
|
247 | 252 | (AppenderAttachable<?>) logbackLogger.getAppender("OpenTelemetryMdc");
|
| 253 | + if (mdcAppender == null) { |
| 254 | + for (Iterator<Appender<ILoggingEvent>> i = logbackLogger.iteratorForAppenders(); |
| 255 | + i.hasNext(); ) { |
| 256 | + Appender<ILoggingEvent> appender = i.next(); |
| 257 | + if (appender |
| 258 | + instanceof io.opentelemetry.instrumentation.logback.mdc.v1_0.OpenTelemetryAppender) { |
| 259 | + mdcAppender = (AppenderAttachable<?>) appender; |
| 260 | + break; |
| 261 | + } |
| 262 | + } |
| 263 | + } |
248 | 264 | return (ListAppender<ILoggingEvent>) mdcAppender.getAppender("List");
|
249 | 265 | }
|
250 | 266 | }
|
0 commit comments