5#include <userver/rcu/fwd.hpp>
6#include <userver/tracing/span.hpp>
7#include <userver/tracing/tracer_fwd.hpp>
9#include <dynamic_config/variables/USERVER_NO_LOG_SPANS.hpp>
11USERVER_NAMESPACE_BEGIN
16using NoLogSpans = ::dynamic_config::userver_no_log_spans::VariableType;
18void SetNoLogSpans(NoLogSpans&& spans);
19bool IsNoLogSpan(
const std::string& name);
20NoLogSpans CopyNoLogSpans();
25 static void SetTracer(Tracer&& tracer);
27 static rcu::ReadablePtr<Tracer, rcu::ExclusiveRcuTraits> ReadTracer();
29 static Tracer CopyCurrentTracer();
31 Tracer(std::string_view service_name, logging::LoggerPtr optional_logger)
32 : service_name_(service_name), optional_logger_(std::move(optional_logger)) {}
35 const std::string& GetServiceName()
const;
37 const logging::LoggerPtr& GetOptionalLogger()
const {
return optional_logger_; }
40 std::string service_name_;
41 logging::LoggerPtr optional_logger_;
45class TracerCleanupScope
final {
49 TracerCleanupScope(TracerCleanupScope&&) =
delete;
50 TracerCleanupScope& operator=(TracerCleanupScope&&) =
delete;
51 ~TracerCleanupScope();
55 NoLogSpans old_no_log_spans_;