Skip to content

Commit 2ebf413

Browse files
authored
Add logging timestamp for log4j1 appender instrument (#9309)
1 parent c2a3ba0 commit 2ebf413

File tree

2 files changed

+11
-0
lines changed
  • instrumentation/log4j/log4j-appender-1.2/javaagent/src

2 files changed

+11
-0
lines changed

instrumentation/log4j/log4j-appender-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v1_2/LogEventMapper.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
2020
import java.io.PrintWriter;
2121
import java.io.StringWriter;
22+
import java.time.Instant;
2223
import java.util.Hashtable;
2324
import java.util.List;
2425
import java.util.Map;
@@ -107,6 +108,7 @@ public void capture(Category logger, Priority level, Object message, Throwable t
107108
// span context
108109
builder.setContext(Context.current());
109110

111+
builder.setTimestamp(Instant.now());
110112
builder.emit();
111113
}
112114

instrumentation/log4j/log4j-appender-1.2/javaagent/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v1_2/Log4j1Test.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
99
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
1010
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
11+
import static java.util.concurrent.TimeUnit.MILLISECONDS;
1112

1213
import io.opentelemetry.api.common.AttributeKey;
1314
import io.opentelemetry.api.logs.Severity;
@@ -17,6 +18,7 @@
1718
import io.opentelemetry.sdk.logs.data.LogRecordData;
1819
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
1920
import java.lang.reflect.Field;
21+
import java.time.Instant;
2022
import java.util.stream.Stream;
2123
import org.apache.log4j.Logger;
2224
import org.apache.log4j.MDC;
@@ -79,6 +81,8 @@ private static void test(
7981
String expectedSeverityText)
8082
throws InterruptedException {
8183

84+
Instant start = Instant.now();
85+
8286
// when
8387
if (withParent) {
8488
testing.runWithSpan(
@@ -99,6 +103,11 @@ private static void test(
99103
.hasInstrumentationScope(InstrumentationScopeInfo.builder(expectedLoggerName).build())
100104
.hasSeverity(expectedSeverity)
101105
.hasSeverityText(expectedSeverityText);
106+
107+
assertThat(log.getTimestampEpochNanos())
108+
.isGreaterThanOrEqualTo(MILLISECONDS.toNanos(start.toEpochMilli()))
109+
.isLessThanOrEqualTo(MILLISECONDS.toNanos(Instant.now().toEpochMilli()));
110+
102111
if (logException) {
103112
assertThat(log)
104113
.hasAttributesSatisfyingExactly(

0 commit comments

Comments
 (0)