Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
Loading...
Searching...
No Matches
logger_adapter.h
Go to the documentation of this file.
1// BSD 3-Clause License
2// Copyright (c) 2021-2025, 🍀☀🌕🌥 🌊
3// See the LICENSE file in the project root for full license information.
4
11#pragma once
12
15#include <kcenon/common/interfaces/logger_interface.h>
16#include <memory>
17#include <sstream>
18#include <string_view>
19
20// For thread_system v3.0+ integration, use common_logger_adapter.h which provides
21// adapters for kcenon::common::interfaces::ILogger
22
24
25// Type alias for log_level
26using log_level = common::interfaces::log_level;
27
35public:
40 explicit logger_adapter(std::shared_ptr<logger> logger_instance)
41 : logger_(std::move(logger_instance)) {
42 }
43
47 logger_adapter() : logger_(std::make_shared<logger>()) {
48 }
49
55 void log(log_level level, std::string_view message) {
56 if (!logger_) {
57 return;
58 }
59 logger_->log(level, std::string(message));
60 }
61
66 bool initialize() {
67 if (logger_) {
68 is_running_ = true;
69 return true;
70 }
71 return false;
72 }
73
77 void shutdown() {
78 if (logger_) {
79 logger_->flush();
80 }
81 is_running_ = false;
82 }
83
88 bool is_running() const {
89 return is_running_ && logger_ != nullptr;
90 }
91
96 std::string name() const {
97 return "LoggerAdapter";
98 }
99
104 std::shared_ptr<logger> get_logger() const {
105 return logger_;
106 }
107
112 void set_level(log_level level) {
113 if (logger_) {
114 logger_->set_level(level);
115 }
116 }
117
118private:
119 std::shared_ptr<logger> logger_;
120 bool is_running_{false};
121};
122
123} // namespace kcenon::logger::adapters
Adapter to expose logger as common::interfaces::ILogger.
std::shared_ptr< logger > get_logger() const
Get the underlying logger.
void shutdown()
Shutdown the adapter.
std::string name() const
Get the adapter name.
void set_level(log_level level)
Set minimum log level.
void log(log_level level, std::string_view message)
Log a message with the specified level.
bool is_running() const
Check if the adapter is running.
bool initialize()
Initialize the adapter.
logger_adapter()
Default constructor - creates a default logger.
std::shared_ptr< kcenon::logger::logger > logger_
logger_adapter(std::shared_ptr< logger > logger_instance)
Constructor with logger instance.
common::VoidResult set_level(common::interfaces::log_level level) override
Set the minimum log level (ILogger interface)
Definition logger.cpp:555
common::VoidResult log(common::interfaces::log_level level, const std::string &message) override
Log a message with specified level (ILogger interface)
Definition logger.cpp:378
common::VoidResult flush() override
Flush any buffered log messages (ILogger interface)
Definition logger.cpp:574
High-performance, thread-safe logging system with asynchronous capabilities.
common::interfaces::log_level log_level
Conditionally enables thread_system integration when available.