Make OpenTelemetryAppender.Builder public (#7521)
Allows for programatic configuration as discussed in this [CNCF slack thread](https://cloud-native.slack.com/archives/C01N5UCHTEH/p1673028580643009).
This commit is contained in:
parent
99060ef731
commit
f0bd7c0504
|
@ -49,7 +49,7 @@ public class OpenTelemetryAppender extends AbstractAppender {
|
||||||
return new Builder<B>().asBuilder();
|
return new Builder<B>().asBuilder();
|
||||||
}
|
}
|
||||||
|
|
||||||
static class Builder<B extends Builder<B>> extends AbstractAppender.Builder<B>
|
public static class Builder<B extends Builder<B>> extends AbstractAppender.Builder<B>
|
||||||
implements org.apache.logging.log4j.core.util.Builder<OpenTelemetryAppender> {
|
implements org.apache.logging.log4j.core.util.Builder<OpenTelemetryAppender> {
|
||||||
|
|
||||||
@PluginBuilderAttribute private boolean captureExperimentalAttributes;
|
@PluginBuilderAttribute private boolean captureExperimentalAttributes;
|
||||||
|
|
|
@ -32,6 +32,8 @@ import org.apache.logging.log4j.Logger;
|
||||||
import org.apache.logging.log4j.Marker;
|
import org.apache.logging.log4j.Marker;
|
||||||
import org.apache.logging.log4j.MarkerManager;
|
import org.apache.logging.log4j.MarkerManager;
|
||||||
import org.apache.logging.log4j.ThreadContext;
|
import org.apache.logging.log4j.ThreadContext;
|
||||||
|
import org.apache.logging.log4j.core.impl.Log4jLogEvent;
|
||||||
|
import org.apache.logging.log4j.message.FormattedMessage;
|
||||||
import org.apache.logging.log4j.message.StringMapMessage;
|
import org.apache.logging.log4j.message.StringMapMessage;
|
||||||
import org.apache.logging.log4j.message.StructuredDataMessage;
|
import org.apache.logging.log4j.message.StructuredDataMessage;
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
|
@ -68,6 +70,22 @@ class OpenTelemetryAppenderConfigTest {
|
||||||
ThreadContext.clearAll();
|
ThreadContext.clearAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void initializeWithBuilder() {
|
||||||
|
OpenTelemetryAppender appender =
|
||||||
|
OpenTelemetryAppender.builder().setName("OpenTelemetryAppender").build();
|
||||||
|
appender.start();
|
||||||
|
|
||||||
|
appender.append(
|
||||||
|
Log4jLogEvent.newBuilder()
|
||||||
|
.setMessage(new FormattedMessage("log message 1", (Object) null))
|
||||||
|
.build());
|
||||||
|
|
||||||
|
List<LogRecordData> logDataList = logRecordExporter.getFinishedLogItems();
|
||||||
|
assertThat(logDataList)
|
||||||
|
.satisfiesExactly(logRecordData -> assertThat(logDataList.get(0)).hasBody("log message 1"));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void logNoSpan() {
|
void logNoSpan() {
|
||||||
logger.info("log message 1");
|
logger.info("log message 1");
|
||||||
|
|
Loading…
Reference in New Issue