diff --git a/CHANGELOG.md b/CHANGELOG.md index 07197c274f2..7ad3ae2efd8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,7 +25,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Update logger level to NOTSET in logs example ([#4637](https://github.com/open-telemetry/opentelemetry-python/pull/4637)) - Logging API accepts optional `context`; deprecates `trace_id`, `span_id`, `trace_flags`. - ([#4597](https://github.com/open-telemetry/opentelemetry-python/pull/4597)) + ([#4597](https://github.com/open-telemetry/opentelemetry-python/pull/4597)) and + ([#4668](https://github.com/open-telemetry/opentelemetry-python/pull/4668)) - sdk: use context instead of trace_id,span_id for initializing LogRecord ([#4653](https://github.com/open-telemetry/opentelemetry-python/pull/4653)) - Rename LogRecordProcessor.emit to on_emit diff --git a/opentelemetry-api/src/opentelemetry/_logs/_internal/__init__.py b/opentelemetry-api/src/opentelemetry/_logs/_internal/__init__.py index d74ea40f018..0d22564c66a 100644 --- a/opentelemetry-api/src/opentelemetry/_logs/_internal/__init__.py +++ b/opentelemetry-api/src/opentelemetry/_logs/_internal/__init__.py @@ -42,8 +42,10 @@ from typing_extensions import deprecated from opentelemetry._logs.severity import SeverityNumber +from opentelemetry.context import get_current from opentelemetry.context.context import Context from opentelemetry.environment_variables import _OTEL_PYTHON_LOGGER_PROVIDER +from opentelemetry.trace import get_current_span from opentelemetry.trace.span import TraceFlags from opentelemetry.util._once import Once from opentelemetry.util._providers import _load_provider @@ -107,14 +109,17 @@ def __init__( attributes: Optional[_ExtendedAttributes] = None, event_name: Optional[str] = None, ) -> None: + if not context: + context = get_current() + span_context = get_current_span(context).get_span_context() self.timestamp = timestamp if observed_timestamp is None: observed_timestamp = time_ns() self.observed_timestamp = observed_timestamp self.context = context - self.trace_id = trace_id - self.span_id = span_id - self.trace_flags = trace_flags + self.trace_id = trace_id or span_context.trace_id + self.span_id = span_id or span_context.span_id + self.trace_flags = trace_flags or span_context.trace_flags self.severity_text = severity_text self.severity_number = severity_number self.body = body