Logger System
0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
Loading...
Searching...
No Matches
log_formatter_interface.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
19
#include <string>
20
#include <memory>
21
#include <functional>
22
23
namespace
kcenon::logger
{
24
25
// Forward declaration
26
struct
log_entry;
27
38
struct
format_options
{
40
bool
include_timestamp
=
true
;
41
43
bool
include_thread_id
=
true
;
44
46
bool
include_source_location
=
true
;
47
49
bool
use_colors
=
false
;
50
52
bool
include_level
=
true
;
53
55
bool
pretty_print
=
false
;
56
};
57
73
class
log_formatter_interface
{
74
public
:
75
virtual
~log_formatter_interface
() =
default
;
76
91
virtual
std::string
format
(
const
log_entry
& entry)
const
= 0;
92
104
virtual
void
set_options
(
const
format_options
& opts) {
105
options_
= opts;
106
}
107
114
virtual
format_options
get_options
()
const
{
115
return
options_
;
116
}
117
129
virtual
std::string
get_name
()
const
= 0;
130
131
protected
:
133
format_options
options_
;
134
};
135
144
using
formatter_factory
= std::function<std::unique_ptr<log_formatter_interface>()>;
145
146
}
// namespace kcenon::logger
kcenon::logger::formatter_factory
Factory for creating log formatter instances.
Definition
formatter_factory.h:50
kcenon::logger::log_formatter_interface
Abstract interface for log message formatters.
Definition
log_formatter_interface.h:73
kcenon::logger::log_formatter_interface::~log_formatter_interface
virtual ~log_formatter_interface()=default
kcenon::logger::log_formatter_interface::format
virtual std::string format(const log_entry &entry) const =0
Format a log entry to a string.
kcenon::logger::log_formatter_interface::set_options
virtual void set_options(const format_options &opts)
Set formatting options.
Definition
log_formatter_interface.h:104
kcenon::logger::log_formatter_interface::options_
format_options options_
Definition
log_formatter_interface.h:133
kcenon::logger::log_formatter_interface::get_options
virtual format_options get_options() const
Get current formatting options.
Definition
log_formatter_interface.h:114
kcenon::logger::log_formatter_interface::get_name
virtual std::string get_name() const =0
kcenon::logger
Definition
common_logger_adapter.h:29
kcenon::logger::format_options
Configuration options for log formatting.
Definition
log_formatter_interface.h:38
kcenon::logger::format_options::pretty_print
bool pretty_print
Definition
log_formatter_interface.h:55
kcenon::logger::format_options::include_source_location
bool include_source_location
Definition
log_formatter_interface.h:46
kcenon::logger::format_options::include_timestamp
bool include_timestamp
Definition
log_formatter_interface.h:40
kcenon::logger::format_options::use_colors
bool use_colors
Definition
log_formatter_interface.h:49
kcenon::logger::format_options::include_thread_id
bool include_thread_id
Definition
log_formatter_interface.h:43
kcenon::logger::format_options::include_level
bool include_level
Definition
log_formatter_interface.h:52
kcenon::logger::log_entry
Represents a single log entry with all associated metadata.
Definition
log_entry.h:155
include
kcenon
logger
interfaces
log_formatter_interface.h
Generated by
1.12.0