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:
jack-berg 2023-01-09 11:14:39 -06:00 committed by GitHub
parent 99060ef731
commit f0bd7c0504
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 1 deletions

View File

@ -49,7 +49,7 @@ public class OpenTelemetryAppender extends AbstractAppender {
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> {
@PluginBuilderAttribute private boolean captureExperimentalAttributes;

View File

@ -32,6 +32,8 @@ import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.Marker;
import org.apache.logging.log4j.MarkerManager;
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.StructuredDataMessage;
import org.junit.jupiter.api.BeforeAll;
@ -68,6 +70,22 @@ class OpenTelemetryAppenderConfigTest {
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
void logNoSpan() {
logger.info("log message 1");