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);
29 static Tracer CopyCurrentTracer();
31 Tracer(std::string_view service_name, logging::LoggerPtr optional_logger)
32 : service_name_(service_name),
33 optional_logger_(std::move(optional_logger))
37 const std::string& GetServiceName()
const;
39 const logging::LoggerPtr& GetOptionalLogger()
const {
return optional_logger_; }
42 std::string service_name_;
43 logging::LoggerPtr optional_logger_;
47class TracerCleanupScope
final {
51 TracerCleanupScope(TracerCleanupScope&&) =
delete;
52 TracerCleanupScope& operator=(TracerCleanupScope&&) =
delete;
53 ~TracerCleanupScope();
57 NoLogSpans old_no_log_spans_;