@@ -614,6 +614,7 @@ def _create_test_log_record(
614614 user_id : int | str | None = None ,
615615 error_code : str | None = None ,
616616 trace_id : str | None = None ,
617+ span_id : str | None = None ,
617618) -> logging .LogRecord :
618619 """Create a test LogRecord with optional extra fields."""
619620 from servicelib .logging_utils import get_log_record_extra
@@ -637,6 +638,7 @@ def _create_test_log_record(
637638
638639 # Add OpenTelemetry trace ID
639640 record .otelTraceID = trace_id # type: ignore[attr-defined]
641+ record .otelSpanID = span_id # type: ignore[attr-defined]
640642
641643 return record
642644
@@ -670,6 +672,7 @@ def test_grok_pattern_parsing(caplog: pytest.LogCaptureFixture) -> None:
670672 user_id = 12345 ,
671673 error_code = "OEC001" ,
672674 trace_id = "1234567890abcdef1234567890abcdef" ,
675+ span_id = "987654321" ,
673676 )
674677
675678 # Format the record
@@ -691,6 +694,7 @@ def test_grok_pattern_parsing(caplog: pytest.LogCaptureFixture) -> None:
691694 assert groups ["log_uid" ] == "12345"
692695 assert groups ["log_oec" ] == "OEC001"
693696 assert groups ["log_trace_id" ] == "1234567890abcdef1234567890abcdef"
697+ assert groups ["log_span_id" ] == "987654321"
694698
695699 # Verify the message is correctly escaped (newlines become \\n)
696700 expected_message = test_message .replace ("\n " , "\\ n" )
@@ -725,6 +729,7 @@ def test_grok_pattern_parsing_with_none_values(
725729 user_id = None ,
726730 error_code = None ,
727731 trace_id = None ,
732+ span_id = None ,
728733 )
729734
730735 formatted_log = formatter .format (record )
@@ -741,4 +746,5 @@ def test_grok_pattern_parsing_with_none_values(
741746 assert groups ["log_uid" ] == "None"
742747 assert groups ["log_oec" ] == "None"
743748 assert groups ["log_trace_id" ] == "None"
749+ assert groups ["log_span_id" ] == "None"
744750 assert groups ["log_msg" ] == "Error message"
0 commit comments