|
45 | 45 | from opentelemetry.context.context import Context |
46 | 46 | from opentelemetry.environment_variables import _OTEL_PYTHON_LOGGER_PROVIDER |
47 | 47 | from opentelemetry.trace.span import TraceFlags |
| 48 | +from opentelemetry.trace import ( |
| 49 | + format_span_id, |
| 50 | + format_trace_id, |
| 51 | + get_current_span, |
| 52 | +) |
48 | 53 | from opentelemetry.util._once import Once |
49 | 54 | from opentelemetry.util._providers import _load_provider |
| 55 | +from opentelemetry.context import get_current |
50 | 56 | from opentelemetry.util.types import AnyValue, _ExtendedAttributes |
51 | 57 |
|
52 | 58 | _logger = getLogger(__name__) |
@@ -107,14 +113,17 @@ def __init__( |
107 | 113 | attributes: Optional[_ExtendedAttributes] = None, |
108 | 114 | event_name: Optional[str] = None, |
109 | 115 | ) -> None: |
| 116 | + if not context: |
| 117 | + context = get_current() |
| 118 | + span_context = get_current_span(context).get_span_context() |
110 | 119 | self.timestamp = timestamp |
111 | 120 | if observed_timestamp is None: |
112 | 121 | observed_timestamp = time_ns() |
113 | 122 | self.observed_timestamp = observed_timestamp |
114 | 123 | self.context = context |
115 | | - self.trace_id = trace_id |
116 | | - self.span_id = span_id |
117 | | - self.trace_flags = trace_flags |
| 124 | + self.trace_id = trace_id or span_context.trace_id |
| 125 | + self.span_id = span_id or span_context.span_id |
| 126 | + self.trace_flags = trace_flags or span_context.trace_flags |
118 | 127 | self.severity_text = severity_text |
119 | 128 | self.severity_number = severity_number |
120 | 129 | self.body = body |
|
0 commit comments