Skip to content

Commit 0a2df97

Browse files
authored
Update LogRecord API to set and make use of context to set trace id / span id / trace flags, (#4668)
1 parent 71df82b commit 0a2df97

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2525
- Update logger level to NOTSET in logs example
2626
([#4637](https://github.com/open-telemetry/opentelemetry-python/pull/4637))
2727
- Logging API accepts optional `context`; deprecates `trace_id`, `span_id`, `trace_flags`.
28-
([#4597](https://github.com/open-telemetry/opentelemetry-python/pull/4597))
28+
([#4597](https://github.com/open-telemetry/opentelemetry-python/pull/4597)) and
29+
([#4668](https://github.com/open-telemetry/opentelemetry-python/pull/4668))
2930
- sdk: use context instead of trace_id,span_id for initializing LogRecord
3031
([#4653](https://github.com/open-telemetry/opentelemetry-python/pull/4653))
3132
- Rename LogRecordProcessor.emit to on_emit

opentelemetry-api/src/opentelemetry/_logs/_internal/__init__.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,10 @@
4242
from typing_extensions import deprecated
4343

4444
from opentelemetry._logs.severity import SeverityNumber
45+
from opentelemetry.context import get_current
4546
from opentelemetry.context.context import Context
4647
from opentelemetry.environment_variables import _OTEL_PYTHON_LOGGER_PROVIDER
48+
from opentelemetry.trace import get_current_span
4749
from opentelemetry.trace.span import TraceFlags
4850
from opentelemetry.util._once import Once
4951
from opentelemetry.util._providers import _load_provider
@@ -107,14 +109,17 @@ def __init__(
107109
attributes: Optional[_ExtendedAttributes] = None,
108110
event_name: Optional[str] = None,
109111
) -> None:
112+
if not context:
113+
context = get_current()
114+
span_context = get_current_span(context).get_span_context()
110115
self.timestamp = timestamp
111116
if observed_timestamp is None:
112117
observed_timestamp = time_ns()
113118
self.observed_timestamp = observed_timestamp
114119
self.context = context
115-
self.trace_id = trace_id
116-
self.span_id = span_id
117-
self.trace_flags = trace_flags
120+
self.trace_id = trace_id or span_context.trace_id
121+
self.span_id = span_id or span_context.span_id
122+
self.trace_flags = trace_flags or span_context.trace_flags
118123
self.severity_text = severity_text
119124
self.severity_number = severity_number
120125
self.body = body

0 commit comments

Comments
 (0)