Logger System
0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
Loading...
Searching...
No Matches
filtered_writer.h
Go to the documentation of this file.
1
// BSD 3-Clause License
2
// Copyright (c) 2025, 🍀☀🌕🌥 🌊
3
// See the LICENSE file in the project root for full license information.
4
5
#pragma once
6
38
#include "
decorator_writer_base.h
"
39
#include "
../interfaces/log_filter_interface.h
"
40
41
#include <
kcenon/logger/logger_export.h
>
42
43
#include <memory>
44
45
namespace
kcenon::logger
{
46
70
class
LOGGER_SYSTEM_API
filtered_writer
:
public
decorator_writer_base
{
71
public
:
84
explicit
filtered_writer
(std::unique_ptr<log_writer_interface> wrapped,
85
std::unique_ptr<log_filter_interface> filter);
86
90
~filtered_writer
()
override
=
default
;
91
92
// Non-copyable
93
filtered_writer
(
const
filtered_writer
&) =
delete
;
94
filtered_writer
&
operator=
(
const
filtered_writer
&) =
delete
;
95
96
// Movable
97
filtered_writer
(
filtered_writer
&&) noexcept = default;
98
filtered_writer
& operator=(
filtered_writer
&&) noexcept = default;
99
113
common
::VoidResult write(const
log_entry
& entry) override;
114
125
std::
string
get_name() const override;
126
134
const
log_filter_interface
* get_filter() const;
135
136
private:
137
std::unique_ptr<
log_filter_interface
> filter_;
138
};
139
151
std::unique_ptr<
filtered_writer
> make_filtered_writer(
152
std::unique_ptr<
log_writer_interface
> writer,
153
std::unique_ptr<
log_filter_interface
> filter);
154
155
}
// namespace kcenon::logger
kcenon::logger::decorator_writer_base
Abstract base class for decorator pattern log writers.
Definition
decorator_writer_base.h:71
kcenon::logger::filtered_writer
Decorator that applies a filter to a wrapped writer.
Definition
filtered_writer.h:70
kcenon::logger::filtered_writer::~filtered_writer
~filtered_writer() override=default
Destructor.
kcenon::logger::filtered_writer::filtered_writer
filtered_writer(const filtered_writer &)=delete
kcenon::logger::filtered_writer::operator=
filtered_writer & operator=(const filtered_writer &)=delete
kcenon::logger::filtered_writer::filtered_writer
filtered_writer(filtered_writer &&) noexcept=default
kcenon::logger::log_filter_interface
Interface for log filters.
Definition
log_filter_interface.h:28
kcenon::logger::log_writer_interface
Base interface for all log writers and decorators.
Definition
log_writer_interface.h:50
decorator_writer_base.h
Base class for decorator pattern writers.
log_filter_interface.h
Interface for log filters used by filtered_logger.
logger_export.h
DLL export/import macros for logger_system shared library support.
LOGGER_SYSTEM_API
#define LOGGER_SYSTEM_API
Definition
logger_export.h:29
kcenon::common
Definition
error_codes.h:45
kcenon::logger
Definition
common_logger_adapter.h:29
kcenon::logger::log_entry
Represents a single log entry with all associated metadata.
Definition
log_entry.h:155
include
kcenon
logger
writers
filtered_writer.h
Generated by
1.12.0