Skip to content

Commit

Permalink
test jul
Browse files Browse the repository at this point in the history
  • Loading branch information
yasmin-aumeeruddy committed Jun 5, 2024
1 parent 7670812 commit 5c3772a
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 151 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,72 +20,43 @@

package org.eclipse.microprofile.telemetry.logs.tck.application;

import java.io.File;
import java.util.logging.Logger;

import org.eclipse.microprofile.telemetry.logs.tck.TestLibraries;
import org.eclipse.microprofile.telemetry.logs.tck.exporter.InMemoryLogRecordExporter;
import org.eclipse.microprofile.telemetry.logs.tck.exporter.InMemoryLogRecordExporterProvider;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.testng.Arquillian;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.asset.StringAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.jboss.shrinkwrap.resolver.api.maven.Maven;
import org.slf4j.bridge.SLF4JBridgeHandler;
import org.testng.Assert;
import org.testng.annotations.Test;

import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender;
import io.opentelemetry.sdk.autoconfigure.spi.logs.ConfigurableLogRecordExporterProvider;
import jakarta.inject.Inject;

public class LogAppenderTest extends Arquillian {
@Deployment
public static WebArchive createDeployment() {
File[] slf4jFiles = Maven.resolver().resolve("org.slf4j:jul-to-slf4j:2.0.13").withTransitivity().asFile();
File[] telemetryLogbackFiles = Maven.resolver()
.resolve("io.opentelemetry.instrumentation:opentelemetry-logback-appender-1.0:2.2.0-alpha")
.withTransitivity().asFile();
File[] logbackFiles =
Maven.resolver().resolve("ch.qos.logback:logback-classic:1.5.5").withTransitivity().asFile();

return ShrinkWrap.create(WebArchive.class)
.addClasses(InMemoryLogRecordExporter.class, InMemoryLogRecordExporterProvider.class)
.addAsLibrary(TestLibraries.AWAITILITY_LIB)
.addAsLibraries(slf4jFiles)
.addAsLibraries(telemetryLogbackFiles)
.addAsLibraries(logbackFiles)
.addAsServiceProvider(ConfigurableLogRecordExporterProvider.class,
InMemoryLogRecordExporterProvider.class)
.addAsResource(new StringAsset(
"otel.sdk.disabled=false\notel.metrics.exporter=none\notel.traces.exporter=none\notel.logs.exporter=in-memory\notel.blrp.max.export.batch.size=1\notel.blrp.schedule.delay=30"),
"otel.sdk.disabled=false\notel.metrics.exporter=none\notel.traces.exporter=none\notel.logs.exporter=logging\notel.service.name=openliberty"),
"META-INF/microprofile-config.properties")
.addAsResource("logback.xml")
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
}

@Inject
private OpenTelemetry openTelemetry;

@Inject
private InMemoryLogRecordExporter memoryExporter;

private static final Logger julLogger = Logger.getLogger("jul-logger");

@Test
void julTest() throws InterruptedException {
// Install OpenTelemetry in logback appender
OpenTelemetryAppender.install(openTelemetry);

// Route JUL logs to slf4j
SLF4JBridgeHandler.removeHandlersForRootLogger();
SLF4JBridgeHandler.install();
julLogger.info("A JUL log message");

Assert.assertTrue(
memoryExporter.getFinishedLogRecordItems(1).get(0).getBody().toString().contains("A JUL log message"));
julLogger.info("A JUL log message");
julLogger.info("A JUL log message");
julLogger.info("A JUL log message");
Thread.sleep(10000);
}
}

This file was deleted.

This file was deleted.

0 comments on commit 5c3772a

Please sign in to comment.