|
Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
|
Asynchronous log collector for high-performance logging. More...
#include <log_collector.h>

Classes | |
| class | impl |
Public Member Functions | |
| log_collector (std::size_t buffer_size=8192, std::size_t batch_size=100) | |
| Constructor. | |
| ~log_collector () | |
| Destructor. | |
| bool | enqueue (common::interfaces::log_level level, const std::string &message, const std::string &file, int line, const std::string &function, const std::chrono::system_clock::time_point ×tamp) |
| Enqueue a log entry. | |
| void | add_writer (std::shared_ptr< log_writer_interface > writer) |
| Add a writer. | |
| void | clear_writers () |
| Clear all writers. | |
| void | start () |
| Start the background processing thread. | |
| void | stop () |
| Stop the background processing thread. | |
| void | flush () |
| Flush all pending log entries. | |
| std::pair< size_t, size_t > | get_queue_metrics () const |
| Get queue metrics. | |
Private Attributes | |
| std::unique_ptr< impl > | pimpl_ |
Asynchronous log collector for high-performance logging.
Collects log entries in a queue (mutex/condition-variable backed) and processes them in a background thread to minimize logging overhead.
Definition at line 34 of file log_collector.h.
|
explicit |
Constructor.
| buffer_size | Size of the log buffer (max queued entries) |
| batch_size | Number of entries to process in each batch (default: 100) Higher values improve throughput but increase latency Lower values reduce latency but may decrease throughput |
Definition at line 421 of file log_collector.cpp.
|
default |
Destructor.
| void kcenon::logger::log_collector::add_writer | ( | std::shared_ptr< log_writer_interface > | writer | ) |
Add a writer.
| writer | Shared pointer to writer |
The collector stores a weak reference to prevent circular dependencies and ensure safe access even if the writer is destroyed.
Definition at line 436 of file log_collector.cpp.
References pimpl_.
| void kcenon::logger::log_collector::clear_writers | ( | ) |
| bool kcenon::logger::log_collector::enqueue | ( | common::interfaces::log_level | level, |
| const std::string & | message, | ||
| const std::string & | file, | ||
| int | line, | ||
| const std::string & | function, | ||
| const std::chrono::system_clock::time_point & | timestamp ) |
Enqueue a log entry.
| level | Log level |
| message | Log message |
| file | Source file |
| line | Source line |
| function | Function name |
| timestamp | Log timestamp |
Definition at line 427 of file log_collector.cpp.
References pimpl_.
| void kcenon::logger::log_collector::flush | ( | ) |
| std::pair< std::size_t, std::size_t > kcenon::logger::log_collector::get_queue_metrics | ( | ) | const |
Get queue metrics.
Definition at line 456 of file log_collector.cpp.
References pimpl_.
| void kcenon::logger::log_collector::start | ( | ) |
Start the background processing thread.
Definition at line 444 of file log_collector.cpp.
References pimpl_.
| void kcenon::logger::log_collector::stop | ( | ) |
Stop the background processing thread.
Definition at line 448 of file log_collector.cpp.
References pimpl_.
|
private |
Definition at line 103 of file log_collector.h.
Referenced by add_writer(), clear_writers(), enqueue(), flush(), get_queue_metrics(), start(), and stop().