Logger System
0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
Loading...
Searching...
No Matches
base_writer.cpp
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
13
#include <
kcenon/logger/writers/base_writer.h
>
14
#include <
kcenon/logger/formatters/timestamp_formatter.h
>
15
16
namespace
kcenon::logger
{
17
18
base_writer::base_writer
(std::unique_ptr<log_formatter_interface> formatter)
19
: formatter_(std::move(formatter)) {
20
if
(!
formatter_
) {
21
// Default to timestamp_formatter if none provided
22
formatter_
= std::make_unique<timestamp_formatter>();
23
}
24
25
// Apply color setting from legacy API to formatter
26
auto
opts =
formatter_
->get_options();
27
opts.use_colors =
use_color_
;
28
formatter_
->set_options(opts);
29
}
30
31
log_formatter_interface
*
base_writer::get_formatter
()
const
{
32
return
formatter_
.get();
33
}
34
35
std::string
base_writer::format_log_entry
(
const
log_entry
& entry)
const
{
36
if
(!
formatter_
) {
37
// Fallback if formatter is somehow null
38
return
entry.
message
.
to_string
();
39
}
40
return
formatter_
->format(entry);
41
}
42
43
}
// namespace kcenon::logger
base_writer.h
Abstract base class for all log output writers kcenon.
kcenon::logger::base_writer::base_writer
base_writer(std::unique_ptr< log_formatter_interface > formatter=nullptr)
Constructor with optional formatter.
Definition
base_writer.cpp:18
kcenon::logger::base_writer::get_formatter
log_formatter_interface * get_formatter() const
Get the current formatter.
Definition
base_writer.cpp:31
kcenon::logger::base_writer::use_color_
bool use_color_
Definition
base_writer.h:240
kcenon::logger::base_writer::format_log_entry
std::string format_log_entry(const log_entry &entry) const
Format a log entry using the current formatter.
Definition
base_writer.cpp:35
kcenon::logger::base_writer::formatter_
std::unique_ptr< log_formatter_interface > formatter_
Definition
base_writer.h:237
kcenon::logger::log_formatter_interface
Abstract interface for log message formatters.
Definition
log_formatter_interface.h:73
kcenon::logger::small_string::to_string
std::string to_string() const
Convert to std::string.
Definition
small_string.h:331
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
kcenon::logger::log_entry::message
small_string_256 message
The actual log message.
Definition
log_entry.h:169
timestamp_formatter.h
Default human-readable formatter with timestamps kcenon.
src
impl
writers
base_writer.cpp
Generated by
1.12.0