From 723611b901b89532d31a57c9dae009d471c9792b Mon Sep 17 00:00:00 2001 From: themavik Date: Thu, 19 Mar 2026 07:33:33 -0400 Subject: [PATCH] fix: map CRITICAL severity text to FATAL per OTel spec (#4984) Root cause: Python's CRITICAL log level was mapped to severity text 'CRITICAL' instead of 'FATAL' as specified in the OpenTelemetry Logs Data Model specification. Made-with: Cursor --- .../src/opentelemetry/sdk/_logs/_internal/__init__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/_logs/_internal/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/_logs/_internal/__init__.py index 9029f867a7e..c6402a9aa61 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/_logs/_internal/__init__.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/_logs/_internal/__init__.py @@ -595,7 +595,9 @@ def _translate(self, record: logging.LogRecord) -> LogRecord: # related to https://github.com/open-telemetry/opentelemetry-python/issues/3548 # Severity Text = WARN as defined in https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#displaying-severity. level_name = ( - "WARN" if record.levelname == "WARNING" else record.levelname + "WARN" if record.levelname == "WARNING" else + "FATAL" if record.levelname == "CRITICAL" else + record.levelname ) return LogRecord(