Logger System
0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
Loading...
Searching...
No Matches
decorator_writer_base.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
37
#include "
../interfaces/log_writer_interface.h
"
38
#include "
../interfaces/writer_category.h
"
39
40
#include <
kcenon/logger/logger_export.h
>
41
42
#include <memory>
43
#include <string>
44
#include <string_view>
45
46
namespace
kcenon::logger
{
47
71
class
LOGGER_SYSTEM_API
decorator_writer_base
:
public
log_writer_interface
,
public
decorator_writer_tag
{
72
public
:
83
explicit
decorator_writer_base
(std::unique_ptr<log_writer_interface> wrapped,
84
std::string_view decorator_name);
85
89
~decorator_writer_base
()
override
=
default
;
90
91
// Non-copyable
92
decorator_writer_base
(
const
decorator_writer_base
&) =
delete
;
93
decorator_writer_base
&
operator=
(
const
decorator_writer_base
&) =
delete
;
94
95
// Movable
96
decorator_writer_base
(
decorator_writer_base
&&) noexcept = default;
97
decorator_writer_base
& operator=(
decorator_writer_base
&&) noexcept = default;
98
107
common
::VoidResult write(const
log_entry
& entry) override = 0;
108
119
common
::VoidResult flush() override;
120
131
std::
string
get_name() const override;
132
143
bool
is_healthy() const override;
144
152
const
log_writer_interface
* get_wrapped_writer() const noexcept;
153
154
protected:
164
log_writer_interface
& wrapped() noexcept;
165
173
const
log_writer_interface
& wrapped() const noexcept;
174
182
const std::
string
& decorator_name() const noexcept;
183
184
private:
185
std::unique_ptr<
log_writer_interface
> wrapped_;
186
std::
string
decorator_name_;
187
};
188
189
}
// namespace kcenon::logger
kcenon::logger::decorator_writer_base
Abstract base class for decorator pattern log writers.
Definition
decorator_writer_base.h:71
kcenon::logger::decorator_writer_base::decorator_writer_base
decorator_writer_base(decorator_writer_base &&) noexcept=default
kcenon::logger::decorator_writer_base::decorator_writer_base
decorator_writer_base(const decorator_writer_base &)=delete
kcenon::logger::decorator_writer_base::~decorator_writer_base
~decorator_writer_base() override=default
Virtual destructor for proper cleanup.
kcenon::logger::decorator_writer_base::operator=
decorator_writer_base & operator=(const decorator_writer_base &)=delete
kcenon::logger::log_writer_interface
Base interface for all log writers and decorators.
Definition
log_writer_interface.h:50
log_writer_interface.h
Base interface for all log writers and decorators.
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::decorator_writer_tag
Tag interface for decorator writers.
Definition
writer_category.h:120
kcenon::logger::log_entry
Represents a single log entry with all associated metadata.
Definition
log_entry.h:155
writer_category.h
Writer category interfaces and type traits kcenon.
include
kcenon
logger
writers
decorator_writer_base.h
Generated by
1.12.0