2525import io .opentelemetry .sdk .OpenTelemetrySdk ;
2626import io .opentelemetry .sdk .trace .SdkTracerProvider ;
2727import io .opentelemetry .sdk .trace .export .SimpleSpanProcessor ;
28+ import io .opentelemetry .sdk .trace .export .SpanExporter ;
29+ import io .opentelemetry .sdk .trace .data .SpanData ;
30+ import io .opentelemetry .sdk .common .CompletableResultCode ;
31+ import java .util .Collection ;
2832import io .opentelemetry .sdk .trace .samplers .Sampler ;
2933import java .io .ByteArrayOutputStream ;
3034import java .io .PrintStream ;
3438import org .junit .After ;
3539import org .junit .Before ;
3640import org .junit .Test ;
41+ import java .util .logging .SimpleFormatter ;
42+ import java .util .logging .StreamHandler ;
3743
3844public class EnableOpenTelemetryTracingIT {
3945 private final Logger log = Logger .getLogger (this .getClass ().getName ());
4046 private ByteArrayOutputStream bout ;
4147 private PrintStream out ;
4248 private PrintStream originalPrintStream ;
4349
50+ private static class ConsoleSpanExporter implements io .opentelemetry .sdk .trace .export .SpanExporter {
51+ @ Override
52+ public CompletableResultCode export (Collection <SpanData > collection ) {
53+ if (collection .isEmpty ()) {
54+ return CompletableResultCode .ofFailure ();
55+ }
56+ for (SpanData data : collection ) {
57+ System .out .println (data );
58+ }
59+ return CompletableResultCode .ofSuccess ();
60+ }
61+
62+ @ Override
63+ public CompletableResultCode flush () {
64+ return CompletableResultCode .ofSuccess ();
65+ }
66+
67+ @ Override
68+ public CompletableResultCode shutdown () {
69+ return CompletableResultCode .ofSuccess ();
70+ }
71+ }
72+
4473 @ Before
4574 public void setUp () {
4675 bout = new ByteArrayOutputStream ();
4776 out = new PrintStream (bout );
48- originalPrintStream = System .err ;
49- System .setErr (out );
50- ConsoleHandler ch = new ConsoleHandler ();
51- log .addHandler (ch );
77+ //originalPrintStream = System.err;
78+ //System.setErr(out);
79+ //ConsoleHandler ch = new ConsoleHandler();
80+ //log.addHandler(ch);
81+ originalPrintStream = System .out ;
82+ System .setOut (out );
83+ //log.setUseParentHandlers(false);
84+ //log.addHandler(new StreamHandler(out, new SimpleFormatter()));
5285 }
5386
5487 @ After
5588 public void tearDown () {
5689 // restores print statements in the original method
57- System .err .flush ();
58- System .setErr (originalPrintStream );
90+ //System.err.flush();
91+ //System.setErr(originalPrintStream);
92+ System .out .flush ();
93+ System .setOut (originalPrintStream );
5994 log .log (Level .INFO , "\n " + bout .toString ());
6095 }
6196
@@ -66,7 +101,7 @@ public void testEnableOpenTelemetryTracing() {
66101
67102 SdkTracerProvider tracerProvider =
68103 SdkTracerProvider .builder ()
69- .addSpanProcessor (SimpleSpanProcessor .builder (LoggingSpanExporter . create ()).build ())
104+ .addSpanProcessor (SimpleSpanProcessor .builder (new ConsoleSpanExporter ()).build ())
70105 .setSampler (Sampler .alwaysOn ())
71106 .build ();
72107
0 commit comments