Skip to content

Commit d5b6401

Browse files
committed
[java] skip logging of tracing spans if log level is not loggable
1 parent a6f37ca commit d5b6401

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

java/src/org/openqa/selenium/remote/tracing/opentelemetry/SeleniumSpanExporter.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ public class SeleniumSpanExporter {
4444
private static final ImmutableSet<String> EXCEPTION_ATTRIBUTES =
4545
ImmutableSet.of("exception.message", "exception.stacktrace");
4646
private static final boolean httpLogs = OpenTelemetryTracer.getHttpLogs();
47+
private static final AttributeKey<String> KEY_SPAN_KIND =
48+
AttributeKey.stringKey(org.openqa.selenium.remote.tracing.AttributeKey.SPAN_KIND.getKey());
4749

4850
private static String getJsonString(Map<String, Object> map) {
4951
StringBuilder text = new StringBuilder();
@@ -61,13 +63,18 @@ public static SpanProcessor getSpanProcessor() {
6163
public CompletableResultCode export(Collection<SpanData> spans) {
6264
spans.forEach(
6365
span -> {
64-
LOG.fine(String.valueOf(span));
65-
66-
String traceId = span.getTraceId();
67-
List<EventData> eventList = span.getEvents();
66+
if (LOG.isLoggable(Level.FINE)) {
67+
LOG.fine(String.valueOf(span));
68+
}
6869

6970
Level logLevel = getLogLevel(span);
7071

72+
if (!LOG.isLoggable(logLevel)) {
73+
return;
74+
}
75+
76+
String traceId = span.getTraceId();
77+
List<EventData> eventList = span.getEvents();
7178
eventList.forEach(
7279
event -> {
7380
Map<String, Object> map = new HashMap<>();
@@ -111,17 +118,12 @@ public CompletableResultCode shutdown() {
111118
private static Level getLogLevel(SpanData span) {
112119
Level level = Level.FINE;
113120

114-
Optional<String> kind =
115-
Optional.ofNullable(
116-
span.getAttributes()
117-
.get(
118-
AttributeKey.stringKey(
119-
org.openqa.selenium.remote.tracing.AttributeKey.SPAN_KIND.getKey())));
120-
121121
if (span.getStatus().getStatusCode() == StatusCode.ERROR) {
122122
level = Level.WARNING;
123-
} else {
124-
if (httpLogs && kind.isPresent()) {
123+
} else if (httpLogs) {
124+
Optional<String> kind = Optional.ofNullable(span.getAttributes().get(KEY_SPAN_KIND));
125+
126+
if (kind.isPresent()) {
125127
String kindValue = kind.get();
126128
if (Span.Kind.SERVER.name().equalsIgnoreCase(kindValue)
127129
|| Span.Kind.CLIENT.name().equalsIgnoreCase(kindValue)) {

0 commit comments

Comments
 (0)