Commit 8197f8f1 by Abseil Team Committed by Copybara-Service

Use absl::NoDestructor for global log sinks.

PiperOrigin-RevId: 583235586
Change-Id: Ia472b8d6530fd829fed1c07558e152975d9b24ac
parent 524ebb7e
...@@ -238,6 +238,7 @@ absl_cc_library( ...@@ -238,6 +238,7 @@ absl_cc_library(
absl::log_entry absl::log_entry
absl::log_severity absl::log_severity
absl::log_sink absl::log_sink
absl::no_destructor
absl::raw_logging_internal absl::raw_logging_internal
absl::synchronization absl::synchronization
absl::span absl::span
......
...@@ -220,6 +220,7 @@ cc_library( ...@@ -220,6 +220,7 @@ cc_library(
"//absl/base:config", "//absl/base:config",
"//absl/base:core_headers", "//absl/base:core_headers",
"//absl/base:log_severity", "//absl/base:log_severity",
"//absl/base:no_destructor",
"//absl/base:raw_logging_internal", "//absl/base:raw_logging_internal",
"//absl/cleanup", "//absl/cleanup",
"//absl/log:globals", "//absl/log:globals",
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include "absl/base/config.h" #include "absl/base/config.h"
#include "absl/base/internal/raw_logging.h" #include "absl/base/internal/raw_logging.h"
#include "absl/base/log_severity.h" #include "absl/base/log_severity.h"
#include "absl/base/no_destructor.h"
#include "absl/base/thread_annotations.h" #include "absl/base/thread_annotations.h"
#include "absl/cleanup/cleanup.h" #include "absl/cleanup/cleanup.h"
#include "absl/log/globals.h" #include "absl/log/globals.h"
...@@ -168,17 +169,16 @@ class GlobalLogSinkSet final { ...@@ -168,17 +169,16 @@ class GlobalLogSinkSet final {
#if defined(__myriad2__) || defined(__Fuchsia__) #if defined(__myriad2__) || defined(__Fuchsia__)
// myriad2 and Fuchsia do not log to stderr by default. // myriad2 and Fuchsia do not log to stderr by default.
#else #else
static StderrLogSink* stderr_log_sink = new StderrLogSink; static absl::NoDestructor<StderrLogSink> stderr_log_sink;
AddLogSink(stderr_log_sink); AddLogSink(stderr_log_sink.get());
#endif #endif
#ifdef __ANDROID__ #ifdef __ANDROID__
static AndroidLogSink* android_log_sink = new AndroidLogSink; static absl::NoDestructor<AndroidLogSink> android_log_sink;
AddLogSink(android_log_sink); AddLogSink(android_log_sink.get());
#endif #endif
#if defined(_WIN32) #if defined(_WIN32)
static WindowsDebuggerLogSink* debugger_log_sink = static absl::NoDestructor<WindowsDebuggerLogSink> debugger_log_sink;
new WindowsDebuggerLogSink; AddLogSink(debugger_log_sink.get());
AddLogSink(debugger_log_sink);
#endif // !defined(_WIN32) #endif // !defined(_WIN32)
} }
...@@ -268,7 +268,7 @@ class GlobalLogSinkSet final { ...@@ -268,7 +268,7 @@ class GlobalLogSinkSet final {
// Returns reference to the global LogSinks set. // Returns reference to the global LogSinks set.
GlobalLogSinkSet& GlobalSinks() { GlobalLogSinkSet& GlobalSinks() {
static GlobalLogSinkSet* global_sinks = new GlobalLogSinkSet; static absl::NoDestructor<GlobalLogSinkSet> global_sinks;
return *global_sinks; return *global_sinks;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment