A sink to receive log records.
Constructors
LogSink
Functions
empty
Return true if this object has no backends.
We want to avoid synchronization overhead when checking if a log message is enabled. Most of the time, most messages will be disabled, so incurring the locking overhead on each message would be too expensive and would discourage developers from creating logs. Furthermore, missing a few messages while the change of state "propagates" to other threads does not affect the correctness of the program.
Note that memory_order_relaxed
does not provide a compiler barrier either, so in theory stores into the atomic could be reordered by the optimizer. We have no reason to worry about that because all the writes are done inside a critical section protected by a mutex. The compiler cannot (or should not) reorder operations around those.
bool
is_enabled
Return true if severity
is enabled.
We want to avoid synchronization overhead when checking if a log message is enabled. Most of the time, most messages will be disabled, so incurring the locking overhead on each message would be too expensive and would discourage developers from creating logs. Furthermore, missing a few messages while the change of state "propagates" to other threads does not affect the correctness of the program.
Note that memory_order_relaxed
does not provide a compiler barrier either, so in theory stores into the atomic could be reordered by the optimizer. We have no reason to worry about that because all the writes are done inside a critical section protected by a mutex. The compiler cannot (or should not) reorder operations around those.
severity
Severity
bool
set_minimum_severity
minimum
Severity
void
minimum_severity
Severity
AddBackend
backend
std::shared_ptr< LogBackend >
BackendId
RemoveBackend
id
BackendId
void
ClearBackends
void
BackendCount
std::size_t
Log
log_record
LogRecord
void
Flush
Flush all the current backends.
void
CompileTimeEnabled
Return true if the severity is enabled at compile time.
level
Severity
bool constexpr
Instance
Return the singleton instance for this application.
LogSink &
EnableStdClog
Enable std::clog
on LogSink::Instance()
.
This is also enabled if the "GOOGLE_CLOUD_CPP_ENABLE_CLOG" environment variable is set.
min_severity
Severity
void
DisableStdClog
Disable std::clog
on LogSink::Instance()
.
Note that this will remove the default logging backend.
void

