Skip to content

Commit ca0eb45

Browse files
authored
Merge branch 'main' into sqlalchemy-semconv-opt-in
2 parents 6ac869d + 6bd19c0 commit ca0eb45

3 files changed

Lines changed: 12 additions & 6 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3434
([#4305](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4305))
3535
- Don't import module in unwrap if not already imported
3636
([#4321](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4321))
37+
- `opentelemetry-instrumentation-logging`: Map Python `CRITICAL` log level to OTel `FATAL` severity text and `WARNING` to `WARN`
38+
([#4365](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4365))
3739
- `opentelemetry-instrumentation-logging`: Add recursion guard in LoggingHandler.emit to prevent deadlock
3840
([#4302](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4302))
3941
- `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)