|
Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
|
Decorator that applies a filter to a wrapped writer. More...
#include <filtered_writer.h>


Public Member Functions | |
| filtered_writer (std::unique_ptr< log_writer_interface > wrapped, std::unique_ptr< log_filter_interface > filter) | |
| Construct a filtered writer. | |
| ~filtered_writer () override=default | |
| Destructor. | |
| filtered_writer (const filtered_writer &)=delete | |
| filtered_writer & | operator= (const filtered_writer &)=delete |
| filtered_writer (filtered_writer &&) noexcept=default | |
| filtered_writer & | operator= (filtered_writer &&) noexcept=default |
| common::VoidResult | write (const log_entry &entry) override |
| Write a log entry if it passes the filter. | |
| std::string | get_name () const override |
| Get the name of this writer. | |
| const log_filter_interface * | get_filter () const |
| Get the current filter. | |
Public Member Functions inherited from kcenon::logger::decorator_writer_base | |
| 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 | flush () override |
| Flush the wrapped 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. | |
Private Attributes | |
| std::unique_ptr< log_filter_interface > | filter_ |
Additional Inherited Members | |
Static Public Attributes inherited from kcenon::logger::decorator_writer_tag | |
| static constexpr writer_category | category = writer_category::decorator |
Protected Member Functions inherited from kcenon::logger::decorator_writer_base | |
| 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. | |
Decorator that applies a filter to a wrapped writer.
This class implements the Decorator pattern for log writers. It wraps any log_writer_interface implementation and applies filtering logic before delegating write operations. Log entries that do not pass the filter are silently dropped (returning success).
Key features:
Category: Synchronous (delegates to wrapped writer), Decorator
Definition at line 70 of file filtered_writer.h.
|
explicit |
Construct a filtered writer.
| wrapped | The writer to wrap with filtering |
| filter | The filter to apply before writing |
| std::invalid_argument | if wrapped is nullptr |
Definition at line 13 of file filtered_writer.cpp.
|
overridedefault |
Destructor.
|
delete |
|
defaultnoexcept |
| const log_filter_interface * kcenon::logger::filtered_writer::get_filter | ( | ) | const |
Get the current filter.
Definition at line 42 of file filtered_writer.cpp.
References filter_.
|
overridevirtual |
Get the name of this writer.
Overrides base class to include filter name when available.
Reimplemented from kcenon::logger::decorator_writer_base.
Definition at line 34 of file filtered_writer.cpp.
References filter_, kcenon::logger::decorator_writer_base::get_name(), kcenon::logger::log_writer_interface::get_name(), and kcenon::logger::decorator_writer_base::wrapped().
Referenced by example_single_decorators().


|
delete |
|
defaultnoexcept |
|
overridevirtual |
Write a log entry if it passes the filter.
| entry | The log entry to write |
If the filter is nullptr or the entry passes the filter, the entry is delegated to the wrapped writer. If the entry does not pass the filter, this method returns success without writing.
Implements kcenon::logger::decorator_writer_base.
Definition at line 19 of file filtered_writer.cpp.
References filter_, kcenon::common::ok(), kcenon::logger::decorator_writer_base::wrapped(), and kcenon::logger::log_writer_interface::write().

|
private |
Definition at line 137 of file filtered_writer.h.
Referenced by get_filter(), get_name(), and write().