This is an automated email from the ASF dual-hosted git repository.

ramanathan1504 pushed a commit to branch fix-trace-metadata-1976
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit df747d0fd56df471b61af047be9598a0e580bb7c
Author: Ramanathan <[email protected]>
AuthorDate: Sat Jul 4 14:17:24 2026 +0530

    Add tests for tracing fields serialization and pattern converters
---
 .../logging/log4j/core/impl/Log4jLogEventTest.java | 22 +++++++++--
 .../core/impl/TraceContextIntegrationTest.java     | 45 ++++++++++++++++++++++
 2 files changed, 64 insertions(+), 3 deletions(-)

diff --git 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/impl/Log4jLogEventTest.java
 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/impl/Log4jLogEventTest.java
index ce7cf8d769..082519142f 100644
--- 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/impl/Log4jLogEventTest.java
+++ 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/impl/Log4jLogEventTest.java
@@ -662,7 +662,6 @@ public class Log4jLogEventTest {
             }
         };
 
-        // Assert Java 8 default method fallbacks return null without throwing 
abstract method exceptions
         assertNull(legacyEvent.getTraceId());
         assertNull(legacyEvent.getSpanId());
         assertNull(legacyEvent.getTraceFlags());
@@ -679,15 +678,32 @@ public class Log4jLogEventTest {
                 .setTraceFlags("01")
                 .build();
 
-        // 1. Verify getters on original
         
assertThat(originalEvent.getTraceId()).isEqualTo("4bf92f3577b34da6a3ce929d0e0e4736");
         assertThat(originalEvent.getSpanId()).isEqualTo("00f067aa0ba902b7");
         assertThat(originalEvent.getTraceFlags()).isEqualTo("01");
 
-        // 2. Verify Builder Copy Constructor
         final Log4jLogEvent copiedEvent = new 
Log4jLogEvent.Builder(originalEvent).build();
         
assertThat(copiedEvent.getTraceId()).isEqualTo("4bf92f3577b34da6a3ce929d0e0e4736");
         assertThat(copiedEvent.getSpanId()).isEqualTo("00f067aa0ba902b7");
         assertThat(copiedEvent.getTraceFlags()).isEqualTo("01");
     }
+
+    @Test
+    void testTracingFieldsSerialization() throws Exception {
+        final Log4jLogEvent originalEvent = Log4jLogEvent.newBuilder()
+                .setLoggerName("SerializationLogger")
+                .setMessage(new 
org.apache.logging.log4j.message.SimpleMessage("dummy message"))
+                .setTraceId("trace-serialize-123")
+                .setSpanId("span-serialize-456")
+                .setTraceFlags("01")
+                .build();
+
+        final byte[] serializedBytes = serialize(originalEvent);
+
+        final Log4jLogEvent deserializedEvent = deserialize(serializedBytes);
+
+        
assertThat(deserializedEvent.getTraceId()).isEqualTo("trace-serialize-123");
+        
assertThat(deserializedEvent.getSpanId()).isEqualTo("span-serialize-456");
+        assertThat(deserializedEvent.getTraceFlags()).isEqualTo("01");
+    }
 }
diff --git 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/impl/TraceContextIntegrationTest.java
 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/impl/TraceContextIntegrationTest.java
index 3f966b877f..48aebe6026 100644
--- 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/impl/TraceContextIntegrationTest.java
+++ 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/impl/TraceContextIntegrationTest.java
@@ -24,6 +24,9 @@ import org.apache.logging.log4j.ThreadContext;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.async.RingBufferLogEvent;
 import org.apache.logging.log4j.core.async.RingBufferLogEventTranslator;
+import org.apache.logging.log4j.core.pattern.SpanIdPatternConverter;
+import org.apache.logging.log4j.core.pattern.TraceFlagsPatternConverter;
+import org.apache.logging.log4j.core.pattern.TraceIdPatternConverter;
 import org.apache.logging.log4j.core.util.ClockFactory;
 import org.apache.logging.log4j.core.util.DummyNanoClock;
 import org.apache.logging.log4j.core.util.TraceContextProviderService;
@@ -146,4 +149,46 @@ public class TraceContextIntegrationTest {
                 })
                 .doesNotThrowAnyException();
     }
+
+    @Test
+    public void testTracePatternConverters() {
+        // 1. Setup an event with trace data
+        final LogEvent event = Log4jLogEvent.newBuilder()
+                .setTraceId("test-trace-123")
+                .setSpanId("test-span-456")
+                .setTraceFlags("01")
+                .build();
+
+        // 2. Test Trace ID Converter
+        final StringBuilder traceSb = new StringBuilder();
+        
org.apache.logging.log4j.core.pattern.TraceIdPatternConverter.newInstance(null)
+                .format(event, traceSb);
+        assertThat(traceSb.toString()).isEqualTo("test-trace-123");
+
+        // 3. Test Span ID Converter
+        final StringBuilder spanSb = new StringBuilder();
+        
org.apache.logging.log4j.core.pattern.SpanIdPatternConverter.newInstance(null)
+                .format(event, spanSb);
+        assertThat(spanSb.toString()).isEqualTo("test-span-456");
+
+        // 4. Test Trace Flags Converter
+        final StringBuilder flagsSb = new StringBuilder();
+        
org.apache.logging.log4j.core.pattern.TraceFlagsPatternConverter.newInstance(null)
+                .format(event, flagsSb);
+        assertThat(flagsSb.toString()).isEqualTo("01");
+    }
+
+    @Test
+    public void testTracePatternConvertersWithNullValues() {
+        TestTraceContextProvider.clearContext();
+
+        final LogEvent event = Log4jLogEvent.newBuilder().build();
+        final StringBuilder sb = new StringBuilder();
+
+        TraceIdPatternConverter.newInstance(null).format(event, sb);
+        SpanIdPatternConverter.newInstance(null).format(event, sb);
+        TraceFlagsPatternConverter.newInstance(null).format(event, sb);
+
+        assertThat(sb.toString()).isEmpty();
+    }
 }

Reply via email to