Logger System
0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
Loading...
Searching...
No Matches
base_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
7
#include <string>
8
#include <chrono>
9
10
// Use common_system's standard interface
11
#include <kcenon/common/interfaces/logger_interface.h>
12
#include <kcenon/common/patterns/result.h>
13
#include <
kcenon/logger/core/error_codes.h
>
14
#include <
kcenon/logger/logger_export.h
>
15
#include "
../interfaces/log_writer_interface.h
"
16
#include "
../interfaces/log_entry.h
"
17
#include "
../interfaces/log_formatter_interface.h
"
18
71
namespace
kcenon::logger
{
72
95
class
LOGGER_SYSTEM_API
base_writer
:
public
log_writer_interface
{
96
public
:
110
explicit
base_writer
(std::unique_ptr<log_formatter_interface> formatter =
nullptr
);
111
112
virtual
~base_writer
() =
default
;
113
132
common::VoidResult
write
(
const
log_entry
& entry)
override
= 0;
133
153
common::VoidResult
flush
()
override
= 0;
154
166
virtual
void
set_use_color
(
bool
use_color) {
167
use_color_ = use_color;
168
}
169
176
bool
use_color
()
const
{
177
return
use_color_;
178
}
179
191
virtual
std::string
get_name
()
const override
= 0;
192
207
virtual
bool
is_healthy
()
const override
{
return
true
; }
208
218
log_formatter_interface
* get_formatter()
const
;
219
220
protected
:
233
std::string format_log_entry(
const
log_entry
& entry)
const
;
234
235
private
:
237
std::unique_ptr<log_formatter_interface>
formatter_
;
238
240
bool
use_color_ =
true
;
241
};
242
243
}
// namespace kcenon::logger
kcenon::common::VoidResult
Definition
error_codes.h:116
kcenon::logger::base_writer
Abstract base class for all log output writers.
Definition
base_writer.h:95
kcenon::logger::base_writer::flush
common::VoidResult flush() override=0
Flush any buffered data.
kcenon::logger::base_writer::write
common::VoidResult write(const log_entry &entry) override=0
Write a log entry using the modern interface.
kcenon::logger::base_writer::~base_writer
virtual ~base_writer()=default
kcenon::logger::base_writer::set_use_color
virtual void set_use_color(bool use_color)
Set whether to use color output (if supported)
Definition
base_writer.h:166
kcenon::logger::base_writer::use_color
bool use_color() const
Get current color output setting.
Definition
base_writer.h:176
kcenon::logger::base_writer::is_healthy
virtual bool is_healthy() const override
Check if the writer is healthy and operational.
Definition
base_writer.h:207
kcenon::logger::base_writer::formatter_
std::unique_ptr< log_formatter_interface > formatter_
Definition
base_writer.h:237
kcenon::logger::base_writer::get_name
virtual std::string get_name() const override=0
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
error_codes.h
Error codes specific to the logger system.
log_entry.h
Data structures for representing log entries and source locations kcenon.
log_formatter_interface.h
Interface for log message formatters (Strategy Pattern) kcenon.
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::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
base_writer.h
Generated by
1.12.0