Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
([#4305](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4305))
- Don't import module in unwrap if not already imported
([#4321](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4321))
- `opentelemetry-instrumentation-logging`: Map Python `CRITICAL` log level to OTel `FATAL` severity text and `WARNING` to `WARN`
([#4365](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4365))
- `opentelemetry-instrumentation-logging`: Add recursion guard in LoggingHandler.emit to prevent deadlock
([#4302](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4302))
- `opentelemetry-instrumentation-grpc`: Fix bidirectional streaming RPCs raising `AttributeError: 'generator' object has no attribute 'add_done_callback'`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -188,10 +188,16 @@ def _translate(self, record: logging.LogRecord) -> LogRecord:
else:
body = record.getMessage()

# 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
# Map Python log level names to OTel severity text as defined in
# https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#displaying-severity
# Python "WARNING" -> OTel "WARN" (see open-telemetry/opentelemetry-python#3548)
# Python "CRITICAL" -> OTel "FATAL" (see open-telemetry/opentelemetry-python#4984)
Comment thread
xrmx marked this conversation as resolved.
Outdated
_python_to_otel_severity_text = {
Comment thread
Krishnachaitanyakc marked this conversation as resolved.
"WARNING": "WARN",
"CRITICAL": "FATAL",
}
level_name = _python_to_otel_severity_text.get(
record.levelname, record.levelname
)

return LogRecord(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -357,7 +357,7 @@ def test_log_record_trace_correlation(self):
record.log_record.body,
"Critical message within span",
)
self.assertEqual(record.log_record.severity_text, "CRITICAL")
self.assertEqual(record.log_record.severity_text, "FATAL")
self.assertEqual(
record.log_record.severity_number,
SeverityNumber.FATAL,
Expand Down Expand Up @@ -390,7 +390,7 @@ def test_log_record_trace_correlation_deprecated(self):
self.assertEqual(
record.log_record.body, "Critical message within span"
)
self.assertEqual(record.log_record.severity_text, "CRITICAL")
self.assertEqual(record.log_record.severity_text, "FATAL")
self.assertEqual(
record.log_record.severity_number, SeverityNumber.FATAL
)
Expand Down
Loading