Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
Loading...
Searching...
No Matches
backends.cppm
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
27export module kcenon.logger:backends;
28
29// Standard library imports
30import <memory>;
31import <string>;
32
33// Import common dependencies
34import kcenon.common;
35
36// Import core partition for types
37import :core;
38
39export namespace kcenon::logger::backends {
40
53public:
57 virtual ~integration_backend() = default;
58
69 virtual common::interfaces::log_level normalize_level(int external_level) const = 0;
70
77 virtual std::string get_backend_name() const = 0;
78
85 virtual bool requires_initialization() const {
86 return false;
87 }
88
95 virtual bool initialize() {
96 return true;
97 }
98
104 virtual void shutdown() {
105 // Default: no-op
106 }
107};
108
120public:
125
129 ~standalone_backend() override = default;
130
138 common::interfaces::log_level normalize_level(int external_level) const override {
139 return static_cast<common::interfaces::log_level>(external_level);
140 }
141
148 std::string get_backend_name() const override {
149 return "standalone";
150 }
151
158 bool requires_initialization() const override {
159 return false;
160 }
161};
162
174inline std::unique_ptr<integration_backend> create_standalone_backend() {
175 return std::make_unique<standalone_backend>();
176}
177
189inline std::unique_ptr<integration_backend> create_default_backend() {
190 // Default to standalone mode
191 // In the future, this can check for available integrations
193}
194
195} // namespace kcenon::logger::backends
Abstract interface for integration backends.
Definition backends.cppm:52
virtual std::string get_backend_name() const =0
Get the backend name.
virtual void shutdown()
Shutdown the backend.
virtual bool requires_initialization() const
Check if backend requires special initialization.
Definition backends.cppm:85
virtual common::interfaces::log_level normalize_level(int external_level) const =0
Normalize external log level to internal level.
virtual bool initialize()
Initialize the backend.
Definition backends.cppm:95
virtual ~integration_backend()=default
Virtual destructor.
Integration backend for standalone logger operation.
standalone_backend()=default
Default constructor.
std::string get_backend_name() const override
Get backend name.
bool requires_initialization() const override
Check if initialization is required.
~standalone_backend() override=default
Default destructor.
common::interfaces::log_level normalize_level(int external_level) const override
Normalize external log level (pass-through)
std::unique_ptr< integration_backend > create_standalone_backend()
std::unique_ptr< integration_backend > create_default_backend()
Detect and create the appropriate default backend.