Logger System
0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
Loading...
Searching...
No Matches
log_writer_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
12
#pragma once
13
14
#include <string>
15
#include <chrono>
16
#include <memory>
17
#include <kcenon/common/patterns/result.h>
18
#include <
kcenon/logger/core/error_codes.h
>
19
20
namespace
kcenon::logger
{
21
22
// Forward declaration
23
struct
log_entry;
24
50
class
log_writer_interface
{
51
public
:
52
virtual
~log_writer_interface
() =
default
;
53
66
virtual
common::VoidResult
write
(
const
log_entry
& entry) = 0;
67
79
virtual
common::VoidResult
flush
() = 0;
80
97
virtual
common::VoidResult
close
() {
98
return
flush
();
99
}
100
118
[[nodiscard]]
virtual
auto
is_open
() const ->
bool
{
119
return
true
;
120
}
121
131
virtual
std::string
get_name
()
const
= 0;
132
143
virtual
bool
is_healthy
()
const
= 0;
144
};
145
151
using
log_writer_ptr
= std::unique_ptr<log_writer_interface>;
152
153
}
// namespace kcenon::logger
kcenon::common::VoidResult
Definition
error_codes.h:116
kcenon::logger::log_writer_interface
Base interface for all log writers and decorators.
Definition
log_writer_interface.h:50
kcenon::logger::log_writer_interface::get_name
virtual std::string get_name() const =0
kcenon::logger::log_writer_interface::is_healthy
virtual bool is_healthy() const =0
Check if the writer is healthy.
kcenon::logger::log_writer_interface::flush
virtual common::VoidResult flush()=0
Flush any buffered data.
kcenon::logger::log_writer_interface::~log_writer_interface
virtual ~log_writer_interface()=default
kcenon::logger::log_writer_interface::write
virtual common::VoidResult write(const log_entry &entry)=0
Write a log entry.
kcenon::logger::log_writer_interface::is_open
virtual auto is_open() const -> bool
Check if writer is open and ready.
Definition
log_writer_interface.h:118
kcenon::logger::log_writer_interface::close
virtual common::VoidResult close()
Close the writer and release resources.
Definition
log_writer_interface.h:97
error_codes.h
Error codes specific to the logger system.
kcenon::logger
Definition
common_logger_adapter.h:29
kcenon::logger::log_writer_ptr
std::unique_ptr< log_writer_interface > log_writer_ptr
Type alias for writer unique pointer.
Definition
log_writer_interface.h:151
kcenon::logger::log_entry
Represents a single log entry with all associated metadata.
Definition
log_entry.h:155
include
kcenon
logger
interfaces
log_writer_interface.h
Generated by
1.12.0