Logger System
1.0.0
High-performance C++20 thread-safe logging system with asynchronous capabilities
Loading...
Searching...
No Matches
console_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
12
#pragma once
13
14
#include "
../interfaces/log_writer_interface.h
"
15
#include "
../interfaces/log_formatter_interface.h
"
16
#include "
../interfaces/writer_category.h
"
17
18
#include <
kcenon/logger/logger_export.h
>
19
20
#include <atomic>
21
#include <mutex>
22
#include <memory>
23
24
namespace
kcenon::logger
{
25
26
namespace
security {
class
integrity_policy; }
27
48
class
LOGGER_SYSTEM_API
console_writer
:
public
log_writer_interface
,
public
sync_writer_tag
{
49
public
:
56
explicit
console_writer
(
bool
use_stderr =
false
,
57
bool
auto_detect_color =
true
,
58
std::unique_ptr<log_formatter_interface> formatter =
nullptr
);
59
63
~console_writer
()
override
;
64
65
// Non-copyable and non-movable
66
console_writer
(
const
console_writer
&) =
delete
;
67
console_writer
&
operator=
(
const
console_writer
&) =
delete
;
68
console_writer
(
console_writer
&&) =
delete
;
69
console_writer
&
operator=
(
console_writer
&&) =
delete
;
70
76
common::VoidResult
write(
const
log_entry
& entry)
override
;
77
82
common::VoidResult
flush()
override
;
83
87
std::string
get_name
()
const override
{
return
"console"
; }
88
92
bool
is_healthy()
const override
;
93
98
void
set_use_stderr(
bool
use_stderr);
99
104
void
set_use_color(
bool
use_color);
105
110
bool
use_color()
const
;
111
120
void
set_integrity_policy(std::shared_ptr<security::integrity_policy> policy);
121
122
protected
:
126
std::string format_entry(
const
log_entry
& entry)
const
;
127
132
std::mutex&
get_mutex
()
const
{
return
mutex_; }
133
134
private
:
139
bool
is_color_supported()
const
;
140
141
private
:
142
bool
use_stderr_
;
143
bool
use_color_{
true
};
144
std::unique_ptr<log_formatter_interface>
formatter_
;
145
std::shared_ptr<security::integrity_policy>
integrity_policy_
;
146
mutable
std::mutex
mutex_
;
147
};
148
149
}
// namespace kcenon::logger
kcenon::common::VoidResult
Definition
error_codes.h:116
kcenon::logger::console_writer
Core console writer for logging to stdout/stderr.
Definition
console_writer.h:48
kcenon::logger::console_writer::operator=
console_writer & operator=(const console_writer &)=delete
kcenon::logger::console_writer::integrity_policy_
std::shared_ptr< security::integrity_policy > integrity_policy_
Definition
console_writer.h:145
kcenon::logger::console_writer::operator=
console_writer & operator=(console_writer &&)=delete
kcenon::logger::console_writer::use_stderr_
bool use_stderr_
Definition
console_writer.h:142
kcenon::logger::console_writer::formatter_
std::unique_ptr< log_formatter_interface > formatter_
Definition
console_writer.h:144
kcenon::logger::console_writer::get_mutex
std::mutex & get_mutex() const
Access the writer mutex for extended operations.
Definition
console_writer.h:132
kcenon::logger::console_writer::console_writer
console_writer(const console_writer &)=delete
kcenon::logger::console_writer::mutex_
std::mutex mutex_
Definition
console_writer.h:146
kcenon::logger::console_writer::get_name
std::string get_name() const override
Get writer name.
Definition
console_writer.h:87
kcenon::logger::console_writer::console_writer
console_writer(console_writer &&)=delete
kcenon::logger::log_writer_interface
Base interface for all log writers and decorators.
Definition
log_writer_interface.h:50
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
kcenon::logger::sync_writer_tag
Tag interface for synchronous writers.
Definition
writer_category.h:78
writer_category.h
Writer category interfaces and type traits kcenon.
include
kcenon
logger
writers
console_writer.h
Generated by
1.12.0