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

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

#include <common_system_adapter.h>

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

Public Member Functions

 common_system_logger_adapter (std::shared_ptr< logger > lg)
 Construct adapter with kcenon::logger logger.
 
 ~common_system_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 (::common::interfaces::log_level level, std::string_view message, const ::kcenon::common::source_location &loc=::kcenon::common::source_location::current()) override
 Log a message with source location information (C++20 style)
 
::common::VoidResult log (const ::common::interfaces::log_entry &entry) override
 Log a structured entry.
 
bool is_enabled (::common::interfaces::log_level level) const override
 Check if logging is enabled for the specified level.
 
::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 minimum log level.
 
::common::VoidResult flush () override
 Flush any buffered log messages.
 
std::shared_ptr< loggerget_impl () const
 Get access to the underlying logger.
 

Static Private Member Functions

static log_level convert_level_from_common (::common::interfaces::log_level level)
 Convert common log level to kcenon::logger log level.
 
::common::interfaces::log_level convert_level_to_common (log_level level)
 Convert kcenon::logger log level to common log level.
 

Private Attributes

std::shared_ptr< loggerimpl_
 

Detailed Description

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

This adapter allows kcenon::logger's logger to be used through the standard common_system logger interface.

Definition at line 35 of file common_system_adapter.h.

Constructor & Destructor Documentation

◆ common_system_logger_adapter()

kcenon::logger::adapters::common_system_logger_adapter::common_system_logger_adapter ( std::shared_ptr< logger > lg)
inlineexplicit

Construct adapter with kcenon::logger logger.

Parameters
lgShared pointer to kcenon::logger logger

Definition at line 41 of file common_system_adapter.h.

42 : impl_(std::move(lg)) {}

◆ ~common_system_logger_adapter()

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

Member Function Documentation

◆ convert_level_from_common()

static log_level kcenon::logger::adapters::common_system_logger_adapter::convert_level_from_common ( ::common::interfaces::log_level level)
inlinestaticprivate

Convert common log level to kcenon::logger log level.

Definition at line 182 of file common_system_adapter.h.

182 {
183 switch(level) {
184 case ::common::interfaces::log_level::trace:
185 return log_level::trace;
186 case ::common::interfaces::log_level::debug:
187 return log_level::debug;
188 case ::common::interfaces::log_level::info:
189 return log_level::info;
190 case ::common::interfaces::log_level::warning:
191 return log_level::warning;
192 case ::common::interfaces::log_level::error:
193 return log_level::error;
194 case ::common::interfaces::log_level::critical:
195 return log_level::critical;
196 case ::common::interfaces::log_level::off:
197 default:
198 return log_level::off;
199 }
200 }

Referenced by is_enabled(), log(), log(), and set_level().

Here is the caller graph for this function:

◆ convert_level_to_common()

::common::interfaces::log_level kcenon::logger::adapters::common_system_logger_adapter::convert_level_to_common ( log_level level)
inlinestaticprivate

Convert kcenon::logger log level to common log level.

Definition at line 205 of file common_system_adapter.h.

205 {
206 switch(level) {
207 case log_level::trace:
208 return ::common::interfaces::log_level::trace;
209 case log_level::debug:
210 return ::common::interfaces::log_level::debug;
211 case log_level::info:
212 return ::common::interfaces::log_level::info;
213 case log_level::warning:
214 return ::common::interfaces::log_level::warning;
215 case log_level::error:
216 return ::common::interfaces::log_level::error;
217 case log_level::critical:
218 return ::common::interfaces::log_level::critical;
219 case log_level::off:
220 default:
221 return ::common::interfaces::log_level::off;
222 }
223 }

Referenced by get_level().

Here is the caller graph for this function:

◆ flush()

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

Flush any buffered log messages.

Definition at line 155 of file common_system_adapter.h.

155 {
156 if (!impl_) {
157 return ::common::VoidResult(
158 ::common::error_info(1, "Logger not initialized", "kcenon::logger"));
159 }
160
161 try {
162 impl_->flush();
163 return ::common::VoidResult(std::monostate{});
164 } catch (const std::exception& e) {
165 return ::common::VoidResult(
166 ::common::error_info(2, e.what(), "kcenon::logger"));
167 }
168 }

References impl_.

◆ get_impl()

std::shared_ptr< logger > kcenon::logger::adapters::common_system_logger_adapter::get_impl ( ) const
inline

Get access to the underlying logger.

Returns
Shared pointer to the logger

Definition at line 174 of file common_system_adapter.h.

174{ return impl_; }

References impl_.

◆ get_level()

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

Get the current minimum log level.

Definition at line 144 of file common_system_adapter.h.

144 {
145 if (!impl_) {
146 return ::common::interfaces::log_level::info;
147 }
148 auto logger_level = impl_->get_level();
149 return convert_level_to_common(logger_level);
150 }
::common::interfaces::log_level convert_level_to_common(log_level level)
Convert kcenon::logger log level to common log level.

References convert_level_to_common(), and impl_.

Here is the call graph for this function:

◆ is_enabled()

bool kcenon::logger::adapters::common_system_logger_adapter::is_enabled ( ::common::interfaces::log_level level) const
inlineoverride

Check if logging is enabled for the specified level.

Definition at line 113 of file common_system_adapter.h.

113 {
114 if (!impl_) {
115 return false;
116 }
117 auto logger_level = convert_level_from_common(level);
118 return impl_->is_enabled(logger_level);
119 }
static log_level convert_level_from_common(::common::interfaces::log_level level)
Convert common log level to kcenon::logger log level.

References convert_level_from_common(), and impl_.

Here is the call graph for this function:

◆ log() [1/3]

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

Log a message with specified level.

Definition at line 49 of file common_system_adapter.h.

51 {
52 if (!impl_) {
53 return ::common::VoidResult(
54 ::common::error_info(1, "Logger not initialized", "kcenon::logger"));
55 }
56
57 try {
58 auto logger_level = convert_level_from_common(level);
59 impl_->log(logger_level, message);
60 return ::common::VoidResult(std::monostate{});
61 } catch (const std::exception& e) {
62 return ::common::VoidResult(
63 ::common::error_info(2, e.what(), "kcenon::logger"));
64 }
65 }

References convert_level_from_common(), and impl_.

Here is the call graph for this function:

◆ log() [2/3]

::common::VoidResult kcenon::logger::adapters::common_system_logger_adapter::log ( ::common::interfaces::log_level level,
std::string_view message,
const ::kcenon::common::source_location & loc = ::kcenon::common::source_location::current() )
inlineoverride

Log a message with source location information (C++20 style)

Definition at line 70 of file common_system_adapter.h.

73 {
74 if (!impl_) {
75 return ::common::VoidResult(
76 ::common::error_info(1, "Logger not initialized", "kcenon::logger"));
77 }
78
79 try {
80 auto logger_level = convert_level_from_common(level);
81 impl_->log(logger_level, message, loc);
82 return ::common::VoidResult(std::monostate{});
83 } catch (const std::exception& e) {
84 return ::common::VoidResult(
85 ::common::error_info(2, e.what(), "kcenon::logger"));
86 }
87 }

References convert_level_from_common(), and impl_.

Here is the call graph for this function:

◆ log() [3/3]

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

Log a structured entry.

Definition at line 92 of file common_system_adapter.h.

93 {
94 if (!impl_) {
95 return ::common::VoidResult(
96 ::common::error_info(1, "Logger not initialized", "kcenon::logger"));
97 }
98
99 try {
100 // Delegate directly to logger's log_entry overload, which extracts
101 // file/line/function from the entry without constructing a
102 // std::source_location (not possible in C++20).
103 return impl_->log(entry);
104 } catch (const std::exception& e) {
105 return ::common::VoidResult(
106 ::common::error_info(2, e.what(), "kcenon::logger"));
107 }
108 }

References impl_.

◆ set_level()

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

Set the minimum log level.

Definition at line 124 of file common_system_adapter.h.

125 {
126 if (!impl_) {
127 return ::common::VoidResult(
128 ::common::error_info(1, "Logger not initialized", "kcenon::logger"));
129 }
130
131 try {
132 auto logger_level = convert_level_from_common(level);
133 impl_->set_level(logger_level);
134 return ::common::VoidResult(std::monostate{});
135 } catch (const std::exception& e) {
136 return ::common::VoidResult(
137 ::common::error_info(2, e.what(), "kcenon::logger"));
138 }
139 }

References convert_level_from_common(), and impl_.

Here is the call graph for this function:

Member Data Documentation

◆ impl_

std::shared_ptr<logger> kcenon::logger::adapters::common_system_logger_adapter::impl_
private

Definition at line 177 of file common_system_adapter.h.

Referenced by flush(), get_impl(), get_level(), is_enabled(), log(), log(), log(), and set_level().


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