Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
Loading...
Searching...
No Matches
kcenon::logger::adapters::logger_adapter Class Reference

Adapter to expose logger as common::interfaces::ILogger. More...

#include <common_logger_adapter.h>

Inheritance diagram for kcenon::logger::adapters::logger_adapter:
Inheritance graph
Collaboration diagram for kcenon::logger::adapters::logger_adapter:
Collaboration graph

Public Member Functions

 logger_adapter (std::shared_ptr< kcenon::logger::logger > lgr)
 Construct adapter with logger instance.
 
 ~logger_adapter () override=default
 
::common::VoidResult log (::common::interfaces::log_level level, const std::string &message) override
 Log a message with specified level.
 
::common::VoidResult log_with_location (::common::interfaces::log_level level, const std::string &message, const std::string &file, int line, const std::string &function) override
 Log a message with source location information.
 
::common::VoidResult log_entry (const ::common::interfaces::log_entry &entry) override
 Log a structured entry.
 
::common::VoidResult set_level (::common::interfaces::log_level level) override
 Set the minimum log level.
 
::common::interfaces::log_level get_level () const override
 Get the current log level.
 
::common::VoidResult flush () override
 Flush all pending log messages.
 
::common::VoidResult register_callback (std::function< void(const ::common::interfaces::log_entry &)> callback) override
 Register a callback for log events.
 
 logger_adapter (std::shared_ptr< logger > logger_instance)
 Constructor with logger instance.
 
 logger_adapter ()
 Default constructor - creates a default logger.
 
void log (log_level level, std::string_view message)
 Log a message with the specified level.
 
bool initialize ()
 Initialize the adapter.
 
void shutdown ()
 Shutdown the adapter.
 
bool is_running () const
 Check if the adapter is running.
 
std::string name () const
 Get the adapter name.
 
std::shared_ptr< loggerget_logger () const
 Get the underlying logger.
 
void set_level (log_level level)
 Set minimum log level.
 

Private Attributes

std::shared_ptr< kcenon::logger::loggerlogger_
 
std::shared_ptr< loggerlogger_
 
bool is_running_ {false}
 

Detailed Description

Adapter to expose logger as common::interfaces::ILogger.

Standalone logger adapter.

Note
For thread_system integration, use common_logger_adapter.h which provides adapters for kcenon::common::interfaces::ILogger (the unified interface used by thread_system v3.0+)

Definition at line 34 of file logger_adapter.h.

Constructor & Destructor Documentation

◆ logger_adapter() [1/3]

kcenon::logger::adapters::logger_adapter::logger_adapter ( std::shared_ptr< kcenon::logger::logger > lgr)
inlineexplicit

Construct adapter with logger instance.

Definition at line 85 of file common_logger_adapter.h.

86 : logger_(lgr) {}
std::shared_ptr< kcenon::logger::logger > logger_

◆ ~logger_adapter()

kcenon::logger::adapters::logger_adapter::~logger_adapter ( )
overridedefault

◆ logger_adapter() [2/3]

kcenon::logger::adapters::logger_adapter::logger_adapter ( std::shared_ptr< logger > logger_instance)
inlineexplicit

Constructor with logger instance.

Parameters
loggerLogger instance to adapt

Definition at line 40 of file logger_adapter.h.

41 : logger_(std::move(logger_instance)) {
42 }

◆ logger_adapter() [3/3]

kcenon::logger::adapters::logger_adapter::logger_adapter ( )
inline

Default constructor - creates a default logger.

Definition at line 47 of file logger_adapter.h.

47 : logger_(std::make_shared<logger>()) {
48 }

Member Function Documentation

◆ flush()

::common::VoidResult kcenon::logger::adapters::logger_adapter::flush ( )
inlineoverride

Flush all pending log messages.

Note
No try-catch needed - logger operations are noexcept

Definition at line 187 of file common_logger_adapter.h.

187 {
188 if (!logger_) {
189 return ::common::error_info(1, "Logger not initialized", "logger_system");
190 }
191
192 // Logger operations are designed to be noexcept
193 logger_->flush();
194 return ::common::VoidResult(std::monostate{});
195 }
common::VoidResult flush() override
Flush any buffered log messages (ILogger interface)
Definition logger.cpp:574

References kcenon::logger::logger::flush(), and logger_.

Here is the call graph for this function:

◆ get_level()

::common::interfaces::log_level kcenon::logger::adapters::logger_adapter::get_level ( ) const
inlineoverride

Get the current log level.

Definition at line 175 of file common_logger_adapter.h.

175 {
176 if (!logger_) {
177 return ::common::interfaces::log_level::off;
178 }
179
181 }
common::interfaces::log_level get_level() const override
Get the current minimum log level (ILogger interface)
Definition logger.cpp:567
inline ::common::interfaces::log_level to_common_level(log_level level)
Convert log levels between logger_system and common_system.

References kcenon::logger::logger::get_level(), logger_, and kcenon::logger::adapters::to_common_level().

Here is the call graph for this function:

◆ get_logger()

std::shared_ptr< logger > kcenon::logger::adapters::logger_adapter::get_logger ( ) const
inline

Get the underlying logger.

Returns
Logger instance

Definition at line 104 of file logger_adapter.h.

104 {
105 return logger_;
106 }

References logger_.

◆ initialize()

bool kcenon::logger::adapters::logger_adapter::initialize ( )
inline

Initialize the adapter.

Returns
true if initialization succeeded

Definition at line 66 of file logger_adapter.h.

66 {
67 if (logger_) {
68 is_running_ = true;
69 return true;
70 }
71 return false;
72 }

References is_running_, and logger_.

◆ is_running()

bool kcenon::logger::adapters::logger_adapter::is_running ( ) const
inline

Check if the adapter is running.

Returns
true if running

Definition at line 88 of file logger_adapter.h.

88 {
89 return is_running_ && logger_ != nullptr;
90 }

References is_running_, and logger_.

◆ log() [1/2]

::common::VoidResult kcenon::logger::adapters::logger_adapter::log ( ::common::interfaces::log_level level,
const std::string & message )
inlineoverride

Log a message with specified level.

Note
No try-catch needed - logger operations are noexcept

Definition at line 94 of file common_logger_adapter.h.

95 {
96 if (!logger_) {
97 return ::common::error_info(1, "Logger not initialized", "logger_system");
98 }
99
100 // Logger operations are designed to be noexcept - simply call and return success
101 logger_->log(from_common_level(level), message);
102 return ::common::VoidResult(std::monostate{});
103 }
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
log_level from_common_level(::common::interfaces::log_level level)

References kcenon::logger::adapters::from_common_level(), kcenon::logger::logger::log(), and logger_.

Here is the call graph for this function:

◆ log() [2/2]

void kcenon::logger::adapters::logger_adapter::log ( log_level level,
std::string_view message )
inline

Log a message with the specified level.

Parameters
levelLog level
messageMessage to log

Definition at line 55 of file logger_adapter.h.

55 {
56 if (!logger_) {
57 return;
58 }
59 logger_->log(level, std::string(message));
60 }

References kcenon::logger::logger::log(), and logger_.

Here is the call graph for this function:

◆ log_entry()

::common::VoidResult kcenon::logger::adapters::logger_adapter::log_entry ( const ::common::interfaces::log_entry & entry)
inlineoverride

Log a structured entry.

Note
No try-catch needed - logger operations are noexcept

Definition at line 136 of file common_logger_adapter.h.

137 {
138 if (!logger_) {
139 return ::common::error_info(1, "Logger not initialized", "logger_system");
140 }
141
142 // Format the entry with location if available
143 try {
144 std::string message = entry.message;
145 if (!entry.file.empty()) {
146 message = std::format("[{}:{}:{}] {}",
147 entry.file, entry.line, entry.function, entry.message);
148 }
149
150 logger_->log(from_common_level(entry.level), message);
151 } catch (const std::exception& e) {
152 // Only format can throw
153 return ::common::error_info(2, std::string("Format error: ") + e.what(), "logger_system");
154 }
155 return ::common::VoidResult(std::monostate{});
156 }

References kcenon::logger::adapters::from_common_level(), kcenon::logger::logger::log(), and logger_.

Here is the call graph for this function:

◆ log_with_location()

::common::VoidResult kcenon::logger::adapters::logger_adapter::log_with_location ( ::common::interfaces::log_level level,
const std::string & message,
const std::string & file,
int line,
const std::string & function )
inlineoverride

Log a message with source location information.

Note
No try-catch needed - logger operations are noexcept

Definition at line 109 of file common_logger_adapter.h.

114 {
115 if (!logger_) {
116 return ::common::error_info(1, "Logger not initialized", "logger_system");
117 }
118
119 // Create formatted message with location info
120 // Logger operations are noexcept - format may throw but we catch at API boundary
121 try {
122 std::string formatted = std::format("[{}:{}:{}] {}",
123 file, line, function, message);
124 logger_->log(from_common_level(level), formatted);
125 } catch (const std::exception& e) {
126 // Only format can throw - return error for format failure
127 return ::common::error_info(2, std::string("Format error: ") + e.what(), "logger_system");
128 }
129 return ::common::VoidResult(std::monostate{});
130 }

References kcenon::logger::adapters::from_common_level(), kcenon::logger::logger::log(), and logger_.

Here is the call graph for this function:

◆ name()

std::string kcenon::logger::adapters::logger_adapter::name ( ) const
inline

Get the adapter name.

Returns
"LoggerAdapter"

Definition at line 96 of file logger_adapter.h.

96 {
97 return "LoggerAdapter";
98 }

◆ register_callback()

::common::VoidResult kcenon::logger::adapters::logger_adapter::register_callback ( std::function< void(const ::common::interfaces::log_entry &)> callback)
inlineoverride

Register a callback for log events.

Definition at line 200 of file common_logger_adapter.h.

201 {
202 if (!logger_) {
203 return ::common::error_info(1, "Logger not initialized", "logger_system");
204 }
205
206 // Note: This requires extending the logger_system to support callbacks
207 // For now, return success as placeholder
208 return ::common::VoidResult(std::monostate{});
209 }

References logger_.

◆ set_level() [1/2]

::common::VoidResult kcenon::logger::adapters::logger_adapter::set_level ( ::common::interfaces::log_level level)
inlineoverride

Set the minimum log level.

Note
No try-catch needed - logger operations are noexcept

Definition at line 162 of file common_logger_adapter.h.

162 {
163 if (!logger_) {
164 return ::common::error_info(1, "Logger not initialized", "logger_system");
165 }
166
167 // Logger operations are designed to be noexcept
169 return ::common::VoidResult(std::monostate{});
170 }
common::VoidResult set_level(common::interfaces::log_level level) override
Set the minimum log level (ILogger interface)
Definition logger.cpp:555

References kcenon::logger::adapters::from_common_level(), logger_, and kcenon::logger::logger::set_level().

Here is the call graph for this function:

◆ set_level() [2/2]

void kcenon::logger::adapters::logger_adapter::set_level ( log_level level)
inline

Set minimum log level.

Parameters
levelMinimum level to log

Definition at line 112 of file logger_adapter.h.

112 {
113 if (logger_) {
114 logger_->set_level(level);
115 }
116 }

References logger_, and kcenon::logger::logger::set_level().

Here is the call graph for this function:

◆ shutdown()

void kcenon::logger::adapters::logger_adapter::shutdown ( )
inline

Shutdown the adapter.

Definition at line 77 of file logger_adapter.h.

77 {
78 if (logger_) {
79 logger_->flush();
80 }
81 is_running_ = false;
82 }

References kcenon::logger::logger::flush(), is_running_, and logger_.

Here is the call graph for this function:

Member Data Documentation

◆ is_running_

bool kcenon::logger::adapters::logger_adapter::is_running_ {false}
private

Definition at line 120 of file logger_adapter.h.

120{false};

Referenced by initialize(), is_running(), and shutdown().

◆ logger_ [1/2]

std::shared_ptr<kcenon::logger::logger> kcenon::logger::adapters::logger_adapter::logger_
private

◆ logger_ [2/2]

std::shared_ptr<logger> kcenon::logger::adapters::logger_adapter::logger_
private

Definition at line 119 of file logger_adapter.h.


The documentation for this class was generated from the following files: