Logger System
0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
Loading...
Searching...
No Matches
formatted_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
39
#include "
decorator_writer_base.h
"
40
#include "
../interfaces/log_formatter_interface.h
"
41
42
#include <
kcenon/logger/logger_export.h
>
43
44
#include <memory>
45
46
namespace
kcenon::logger
{
47
71
class
LOGGER_SYSTEM_API
formatted_writer
:
public
decorator_writer_base
{
72
public
:
85
explicit
formatted_writer
(std::unique_ptr<log_writer_interface> wrapped,
86
std::unique_ptr<log_formatter_interface> formatter);
87
91
~formatted_writer
()
override
=
default
;
92
93
// Non-copyable
94
formatted_writer
(
const
formatted_writer
&) =
delete
;
95
formatted_writer
&
operator=
(
const
formatted_writer
&) =
delete
;
96
97
// Movable
98
formatted_writer
(
formatted_writer
&&) noexcept = default;
99
formatted_writer
& operator=(
formatted_writer
&&) noexcept = default;
100
115
common
::VoidResult write(const
log_entry
& entry) override;
116
127
std::
string
get_name() const override;
128
136
const
log_formatter_interface
* get_formatter() const;
137
138
private:
139
std::unique_ptr<
log_formatter_interface
> formatter_;
140
};
141
153
std::unique_ptr<
formatted_writer
> make_formatted_writer(
154
std::unique_ptr<
log_writer_interface
> writer,
155
std::unique_ptr<
log_formatter_interface
> formatter);
156
157
}
// namespace kcenon::logger
kcenon::logger::decorator_writer_base
Abstract base class for decorator pattern log writers.
Definition
decorator_writer_base.h:71
kcenon::logger::formatted_writer
Decorator that applies a formatter to a wrapped writer.
Definition
formatted_writer.h:71
kcenon::logger::formatted_writer::formatted_writer
formatted_writer(formatted_writer &&) noexcept=default
kcenon::logger::formatted_writer::formatted_writer
formatted_writer(const formatted_writer &)=delete
kcenon::logger::formatted_writer::~formatted_writer
~formatted_writer() override=default
Destructor.
kcenon::logger::formatted_writer::operator=
formatted_writer & operator=(const formatted_writer &)=delete
kcenon::logger::log_formatter_interface
Abstract interface for log message formatters.
Definition
log_formatter_interface.h:73
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_formatter_interface.h
Interface for log message formatters (Strategy Pattern) kcenon.
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
formatted_writer.h
Generated by
1.12.0