Skip to content

Commit 6bd19c0

Browse files
Krishnachaitanyakclzchenxrmx
authored
fix: map Python CRITICAL log level to OTel FATAL severity text (#4365)
* fix: map Python CRITICAL log level to OTel FATAL severity text in contrib handler The OTel specification defines the severity text for the highest severity range as "FATAL", but the contrib logging handler was passing through Python's native "CRITICAL" level name unchanged. This mirrors the fix made in open-telemetry/opentelemetry-python#5011 for the SDK handler. Related: open-telemetry/opentelemetry-python#4984 * Add CHANGELOG entry for CRITICAL -> FATAL severity text mapping * Update instrumentation/opentelemetry-instrumentation-logging/src/opentelemetry/instrumentation/logging/handler.py --------- Co-authored-by: Leighton Chen <lechen@microsoft.com> Co-authored-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
1 parent 8f31a01 commit 6bd19c0

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3232
([#4305](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4305))
3333
- Don't import module in unwrap if not already imported
3434
([#4321](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4321))
35+
- `opentelemetry-instrumentation-logging`: Map Python `CRITICAL` log level to OTel `FATAL` severity text and `WARNING` to `WARN`
36+
([#4365](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4365))
3537
- `opentelemetry-instrumentation-logging`: Add recursion guard in LoggingHandler.emit to prevent deadlock
3638
([#4302](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4302))
3739
- `opentelemetry-instrumentation-grpc`: Fix bidirectional streaming RPCs raising `AttributeError: 'generator' object has no attribute 'add_done_callback'`

instrumentation/opentelemetry-instrumentation-logging/src/opentelemetry/instrumentation/logging/handler.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -188,10 +188,14 @@ def _translate(self, record: logging.LogRecord) -> LogRecord:
188188
else:
189189
body = record.getMessage()
190190

191-
# related to https://github.com/open-telemetry/opentelemetry-python/issues/3548
192-
# Severity Text = WARN as defined in https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#displaying-severity.
193-
level_name = (
194-
"WARN" if record.levelname == "WARNING" else record.levelname
191+
# Map Python log level names to OTel severity text as defined in
192+
# https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#displaying-severity
193+
_python_to_otel_severity_text = {
194+
"WARNING": "WARN",
195+
"CRITICAL": "FATAL",
196+
}
197+
level_name = _python_to_otel_severity_text.get(
198+
record.levelname, record.levelname
195199
)
196200

197201
return LogRecord(

instrumentation/opentelemetry-instrumentation-logging/tests/test_handler.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ def test_log_record_trace_correlation(self):
357357
record.log_record.body,
358358
"Critical message within span",
359359
)
360-
self.assertEqual(record.log_record.severity_text, "CRITICAL")
360+
self.assertEqual(record.log_record.severity_text, "FATAL")
361361
self.assertEqual(
362362
record.log_record.severity_number,
363363
SeverityNumber.FATAL,
@@ -390,7 +390,7 @@ def test_log_record_trace_correlation_deprecated(self):
390390
self.assertEqual(
391391
record.log_record.body, "Critical message within span"
392392
)
393-
self.assertEqual(record.log_record.severity_text, "CRITICAL")
393+
self.assertEqual(record.log_record.severity_text, "FATAL")
394394
self.assertEqual(
395395
record.log_record.severity_number, SeverityNumber.FATAL
396396
)

0 commit comments

Comments
 (0)