|
Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
|
Core console writer for logging to stdout/stderr. More...
#include <console_writer.h>


Public Member Functions | |
| console_writer (bool use_stderr=false, bool auto_detect_color=true, std::unique_ptr< log_formatter_interface > formatter=nullptr) | |
| Constructor. | |
| ~console_writer () override | |
| Destructor. | |
| console_writer (const console_writer &)=delete | |
| console_writer & | operator= (const console_writer &)=delete |
| console_writer (console_writer &&)=delete | |
| console_writer & | operator= (console_writer &&)=delete |
| common::VoidResult | write (const log_entry &entry) override |
| Write a log entry to console. | |
| common::VoidResult | flush () override |
| Flush console streams. | |
| std::string | get_name () const override |
| Get writer name. | |
| bool | is_healthy () const override |
| Check if writer is healthy. | |
| void | set_use_stderr (bool use_stderr) |
| Set whether to use stderr for all output. | |
| void | set_use_color (bool use_color) |
| Set whether to use color output (if supported) | |
| bool | use_color () const |
| Get current color output setting. | |
Public Member Functions inherited from kcenon::logger::log_writer_interface | |
| virtual | ~log_writer_interface ()=default |
| virtual common::VoidResult | close () |
| Close the writer and release resources. | |
| virtual auto | is_open () const -> bool |
| Check if writer is open and ready. | |
Protected Member Functions | |
| std::string | format_entry (const log_entry &entry) const |
| Format a log entry using the current formatter. | |
| std::mutex & | get_mutex () const |
| Access the writer mutex for extended operations. | |
Private Member Functions | |
| bool | is_color_supported () const |
| Check if terminal supports color. | |
Private Attributes | |
| bool | use_stderr_ |
| bool | use_color_ {true} |
| std::unique_ptr< log_formatter_interface > | formatter_ |
| std::mutex | mutex_ |
Additional Inherited Members | |
Static Public Attributes inherited from kcenon::logger::sync_writer_tag | |
| static constexpr writer_category | category = writer_category::synchronous |
Core console writer for logging to stdout/stderr.
Pure console I/O implementation with direct mutex management. Designed to serve as the base layer in Decorator pattern compositions.
Features:
Category: Synchronous (blocking I/O to console)
Definition at line 46 of file console_writer.h.
|
explicit |
Constructor.
| use_stderr | If true, all output goes to stderr (default: false) |
| auto_detect_color | Auto-detect terminal color support (default: true) |
| formatter | Custom log formatter (default: timestamp formatter) |
Definition at line 25 of file console_writer.cpp.
References formatter_, is_color_supported(), set_use_color(), and use_color_.

|
override |
Destructor.
Definition at line 40 of file console_writer.cpp.
References flush().

|
delete |
|
delete |
|
overridevirtual |
Flush console streams.
Implements kcenon::logger::log_writer_interface.
Definition at line 90 of file console_writer.cpp.
References kcenon::logger::flush_timeout, kcenon::logger::make_logger_void_result(), mutex_, kcenon::common::ok(), and kcenon::logger::utils::try_write_operation().
Referenced by ~console_writer().


|
protected |
Format a log entry using the current formatter.
Definition at line 126 of file console_writer.cpp.
References formatter_, kcenon::logger::log_entry::message, and kcenon::logger::small_string< SSO_SIZE >::to_string().
Referenced by write().


|
inlineprotected |
Access the writer mutex for extended operations.
Definition at line 120 of file console_writer.h.
|
inlineoverridevirtual |
Get writer name.
Implements kcenon::logger::log_writer_interface.
Definition at line 85 of file console_writer.h.
Referenced by example_core_writers().

|
private |
Check if terminal supports color.
Definition at line 134 of file console_writer.cpp.
Referenced by console_writer().

|
overridevirtual |
Check if writer is healthy.
Implements kcenon::logger::log_writer_interface.
Definition at line 104 of file console_writer.cpp.
|
delete |
|
delete |
| void kcenon::logger::console_writer::set_use_color | ( | bool | use_color | ) |
Set whether to use color output (if supported)
| use_color | true to enable color output, false to disable |
Definition at line 113 of file console_writer.cpp.
References formatter_, use_color(), and use_color_.
Referenced by console_writer().


| void kcenon::logger::console_writer::set_use_stderr | ( | bool | use_stderr | ) |
Set whether to use stderr for all output.
| use_stderr | Enable/disable stderr usage |
Definition at line 108 of file console_writer.cpp.
References mutex_, and use_stderr_.
| bool kcenon::logger::console_writer::use_color | ( | ) | const |
Get current color output setting.
Definition at line 122 of file console_writer.cpp.
References use_color_.
Referenced by set_use_color(), and write().

|
overridevirtual |
Write a log entry to console.
| entry | The log entry to write |
Implements kcenon::logger::log_writer_interface.
Definition at line 44 of file console_writer.cpp.
References kcenon::logger::utils::check_stream_state(), format_entry(), kcenon::logger::log_entry::level, mutex_, kcenon::logger::processing_failed, kcenon::logger::utils::try_write_operation(), use_color(), and use_stderr_.
Referenced by main().


|
private |
Definition at line 132 of file console_writer.h.
Referenced by console_writer(), format_entry(), and set_use_color().
|
mutableprivate |
Definition at line 133 of file console_writer.h.
Referenced by flush(), set_use_stderr(), and write().
|
private |
Definition at line 131 of file console_writer.h.
Referenced by console_writer(), set_use_color(), and use_color().
|
private |
Definition at line 130 of file console_writer.h.
Referenced by set_use_stderr(), and write().