66 explicit console_sink(
bool use_stderr =
false,
bool auto_flush =
false)
96 std::lock_guard<std::mutex> lock(
mutex_);
104 std::cout << message;
124 std::lock_guard<std::mutex> lock(
mutex_);
169 std::string info =
use_stderr_ ?
"stderr" :
"stdout";
171 info +=
", auto-flush";
185 std::lock_guard<std::mutex> lock(
mutex_);
198 std::lock_guard<std::mutex> lock(
mutex_);
Outputs log messages to console (stdout or stderr)
common::VoidResult write_raw(std::string_view message) override
Write a pre-formatted message to console.
bool auto_flush_
Flush after every write.
console_sink(bool use_stderr=false, bool auto_flush=false)
Construct a console sink.
bool use_stderr_
Write to stderr instead of stdout.
std::mutex mutex_
Protects console output.
common::VoidResult flush() override
Flush buffered output to console.
bool is_healthy() const override
Check if console is healthy.
~console_sink() override
Destructor - ensures all data is flushed.
std::string get_name() const override
Get the name of this sink.
std::string get_info() const override
Get sink information.
void set_use_stderr(bool use_stderr)
Set whether to use stderr.
void set_auto_flush(bool auto_flush)
Set whether to auto-flush after every write.
Abstract interface for log output destinations (I/O only)
Interface for log output destinations (Single Responsibility Principle) kcenon.