File tree Expand file tree Collapse file tree 1 file changed +24
-0
lines changed
instrumentation/spdlog/src Expand file tree Collapse file tree 1 file changed +24
-0
lines changed Original file line number Diff line number Diff line change 99#include < opentelemetry/trace/semantic_conventions.h>
1010#include < opentelemetry/version.h>
1111
12+ #include < opentelemetry/context/runtime_context.h>
13+ #include < opentelemetry/trace/context.h>
14+ #include < opentelemetry/trace/span_id.h>
15+ #include < opentelemetry/trace/trace_id.h>
16+
1217namespace spdlog
1318{
1419namespace sinks
@@ -36,6 +41,25 @@ void OpenTelemetrySink<Mutex>::sink_it_(const spdlog::details::log_msg &msg)
3641 log_record->SetAttribute (kCodeLineno , msg.source .line );
3742 }
3843 log_record->SetAttribute (kThreadId , msg.thread_id );
44+
45+ auto current_ctx = opentelemetry::context::RuntimeContext::GetCurrent ();
46+ auto span = opentelemetry::trace::GetSpan (current_ctx);
47+ if (span && span->GetContext ().IsValid ()) {
48+ auto span_context = span->GetContext ();
49+
50+ auto trace_id = span_context.trace_id ();
51+ char trace_id_buf[opentelemetry::trace::TraceId::kSize * 2 ];
52+ trace_id.ToLowerBase16 (trace_id_buf);
53+ log_record->SetTraceId (trace_id);
54+
55+ auto span_id = span_context.span_id ();
56+ char span_id_buf[opentelemetry::trace::SpanId::kSize * 2 ];
57+ span_id.ToLowerBase16 (span_id_buf);
58+ log_record->SetSpanId (span_id);
59+
60+ log_record->SetTraceFlags (span_context.trace_flags ());
61+ }
62+
3963 logger->EmitLogRecord (std::move (log_record));
4064 }
4165}
You can’t perform that action at this time.
0 commit comments