|
Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
|
Abstract base class for decorator pattern log writers. More...
#include <decorator_writer_base.h>


Public Member Functions | |
| decorator_writer_base (std::unique_ptr< log_writer_interface > wrapped, std::string_view decorator_name) | |
| Construct a decorator writer base. | |
| ~decorator_writer_base () override=default | |
| Virtual destructor for proper cleanup. | |
| decorator_writer_base (const decorator_writer_base &)=delete | |
| decorator_writer_base & | operator= (const decorator_writer_base &)=delete |
| decorator_writer_base (decorator_writer_base &&) noexcept=default | |
| decorator_writer_base & | operator= (decorator_writer_base &&) noexcept=default |
| common::VoidResult | write (const log_entry &entry) override=0 |
| Write a log entry (must be implemented by derived classes) | |
| common::VoidResult | flush () override |
| Flush the wrapped writer. | |
| std::string | get_name () const override |
| Get the name of this writer. | |
| bool | is_healthy () const override |
| Check if the writer is healthy. | |
| const log_writer_interface * | get_wrapped_writer () const noexcept |
| Get the wrapped writer (const version) | |
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 | |
| log_writer_interface & | wrapped () noexcept |
| Access the wrapped writer (non-const) | |
| const log_writer_interface & | wrapped () const noexcept |
| Access the wrapped writer (const) | |
| const std::string & | decorator_name () const noexcept |
| Get the decorator name. | |
Private Attributes | |
| std::unique_ptr< log_writer_interface > | wrapped_ |
| std::string | decorator_name_ |
Additional Inherited Members | |
Static Public Attributes inherited from kcenon::logger::decorator_writer_tag | |
| static constexpr writer_category | category = writer_category::decorator |
Abstract base class for decorator pattern log writers.
This class provides common functionality for all decorator writers:
Derived classes only need to implement write() with their specific behavior.
Key features:
Category: Decorator (wraps another writer)
Definition at line 71 of file decorator_writer_base.h.
|
explicit |
Construct a decorator writer base.
| wrapped | The writer to wrap with this decorator |
| decorator_name | Name prefix for this decorator (e.g., "async", "filtered") |
| std::invalid_argument | if wrapped is nullptr |
Definition at line 18 of file decorator_writer_base.cpp.
References wrapped_.
|
overridedefault |
Virtual destructor for proper cleanup.
|
delete |
|
defaultnoexcept |
|
protectednoexcept |
Get the decorator name.
Definition at line 50 of file decorator_writer_base.cpp.
References decorator_name_.
|
overridevirtual |
Flush the wrapped writer.
Default implementation delegates to wrapped writer. Override if additional flush behavior is needed.
Implements kcenon::logger::log_writer_interface.
Definition at line 26 of file decorator_writer_base.cpp.
References wrapped_.
|
overridevirtual |
Get the name of this writer.
Default implementation combines decorator name with wrapped writer's name. Override for custom naming behavior.
Implements kcenon::logger::log_writer_interface.
Reimplemented in kcenon::logger::filtered_writer, and kcenon::logger::formatted_writer.
Definition at line 30 of file decorator_writer_base.cpp.
References decorator_name_, and wrapped_.
Referenced by example_single_decorators(), kcenon::logger::filtered_writer::get_name(), and kcenon::logger::formatted_writer::get_name().

|
noexcept |
Get the wrapped writer (const version)
Definition at line 38 of file decorator_writer_base.cpp.
References wrapped_.
|
overridevirtual |
Check if the writer is healthy.
Default implementation delegates to wrapped writer. Override to add additional health checks.
Implements kcenon::logger::log_writer_interface.
Reimplemented in kcenon::logger::queued_writer_base< Container >, kcenon::logger::queued_writer_base< std::queue< log_entry > >, and kcenon::logger::queued_writer_base< std::vector< log_entry > >.
Definition at line 34 of file decorator_writer_base.cpp.
References wrapped_.
|
delete |
|
defaultnoexcept |
|
protectednoexcept |
Access the wrapped writer (const)
Definition at line 46 of file decorator_writer_base.cpp.
References wrapped_.
|
protectednoexcept |
Access the wrapped writer (non-const)
Definition at line 42 of file decorator_writer_base.cpp.
References wrapped_.
Referenced by kcenon::logger::async_writer::flush(), kcenon::logger::batch_writer::flush_batch_unsafe(), kcenon::logger::buffered_writer::flush_buffer_unsafe(), kcenon::logger::async_writer::flush_remaining(), kcenon::logger::async_writer::get_name(), kcenon::logger::batch_writer::get_name(), kcenon::logger::filtered_writer::get_name(), kcenon::logger::formatted_writer::get_name(), kcenon::logger::async_writer::is_healthy(), kcenon::logger::batch_writer::is_healthy(), kcenon::logger::queued_writer_base< Container >::is_healthy(), kcenon::logger::async_writer::process_messages(), kcenon::logger::async_writer::write(), kcenon::logger::filtered_writer::write(), and kcenon::logger::formatted_writer::write().

|
overridepure virtual |
Write a log entry (must be implemented by derived classes)
| entry | The log entry to write |
Implements kcenon::logger::log_writer_interface.
Implemented in kcenon::logger::async_writer, kcenon::logger::batch_writer, kcenon::logger::buffered_writer, kcenon::logger::encrypted_writer, kcenon::logger::filtered_writer, and kcenon::logger::formatted_writer.
|
private |
Definition at line 186 of file decorator_writer_base.h.
Referenced by decorator_name(), and get_name().
|
private |
Definition at line 185 of file decorator_writer_base.h.
Referenced by decorator_writer_base(), flush(), get_name(), get_wrapped_writer(), is_healthy(), wrapped(), and wrapped().