Common System 0.2.0
Common interfaces and patterns for system integration
Loading...
Searching...
No Matches
kcenon::common::logging::ConsoleLogger Class Referenceexport

Simple console logger implementation. More...

Inheritance diagram for kcenon::common::logging::ConsoleLogger:
Inheritance graph
Collaboration diagram for kcenon::common::logging::ConsoleLogger:
Collaboration graph

Public Member Functions

 ConsoleLogger (interfaces::log_level level=interfaces::log_level::info)
 
VoidResult log (interfaces::log_level level, const std::string &message) override
 Log a message with specified level.
 
VoidResult log (const interfaces::log_entry &entry) override
 Log a structured entry.
 
bool is_enabled (interfaces::log_level level) const override
 Check if logging is enabled for the specified level.
 
VoidResult set_level (interfaces::log_level level) override
 Set the minimum log level.
 
interfaces::log_level get_level () const override
 Get the current minimum log level.
 
VoidResult flush () override
 Flush any buffered log messages.
 
- Public Member Functions inherited from kcenon::common::interfaces::ILogger
virtual ~ILogger ()=default
 
virtual VoidResult log (log_level level, std::string_view message, const source_location &loc=source_location::current())
 Log a message with source location information (C++20)
 
virtual ~ILogger ()=default
 
virtual VoidResult log (log_level level, std::string_view message, const source_location &loc=source_location::current())
 

Private Attributes

interfaces::log_level level_
 

Detailed Description

Simple console logger implementation.

Definition at line 103 of file logging.cppm.

Constructor & Destructor Documentation

◆ ConsoleLogger()

kcenon::common::logging::ConsoleLogger::ConsoleLogger ( interfaces::log_level level = interfaces::log_level::info)
inlineexport

Definition at line 105 of file logging.cppm.

106 : level_(level) {}

Member Function Documentation

◆ flush()

VoidResult kcenon::common::logging::ConsoleLogger::flush ( )
inlineoverrideexportvirtual

Flush any buffered log messages.

Returns
VoidResult indicating success or error

Implements kcenon::common::interfaces::ILogger.

Definition at line 142 of file logging.cppm.

142 {
143 std::cout.flush();
144 return kcenon::common::ok();
145 }
VoidResult ok()
Create a successful void result.
Definition utilities.h:71

References kcenon::common::ok().

Here is the call graph for this function:

◆ get_level()

interfaces::log_level kcenon::common::logging::ConsoleLogger::get_level ( ) const
inlineoverrideexportvirtual

Get the current minimum log level.

Returns
Current minimum log level

Implements kcenon::common::interfaces::ILogger.

Definition at line 138 of file logging.cppm.

138 {
139 return level_;
140 }

References level_.

◆ is_enabled()

bool kcenon::common::logging::ConsoleLogger::is_enabled ( interfaces::log_level level) const
inlineoverrideexportvirtual

Check if logging is enabled for the specified level.

Parameters
levelLog level to check
Returns
true if logging is enabled for this level

Implements kcenon::common::interfaces::ILogger.

Definition at line 129 of file logging.cppm.

129 {
130 return static_cast<int>(level) >= static_cast<int>(level_);
131 }

References level_.

Referenced by log(), and log().

Here is the caller graph for this function:

◆ log() [1/2]

VoidResult kcenon::common::logging::ConsoleLogger::log ( const interfaces::log_entry & entry)
inlineoverrideexportvirtual

Log a structured entry.

Parameters
entryLog entry containing all information
Returns
VoidResult indicating success or error

Implements kcenon::common::interfaces::ILogger.

Definition at line 116 of file logging.cppm.

116 {
117 if (!is_enabled(entry.level)) {
118 return kcenon::common::ok();
119 }
120 std::cout << "[" << interfaces::to_string(entry.level) << "] "
121 << entry.message;
122 if (!entry.file.empty()) {
123 std::cout << " (" << entry.file << ":" << entry.line << ")";
124 }
125 std::cout << std::endl;
126 return kcenon::common::ok();
127 }
bool is_enabled(interfaces::log_level level) const override
Check if logging is enabled for the specified level.
Definition logging.cppm:129
std::string to_string(log_level level)
Convert log level to string.

References kcenon::common::interfaces::log_entry::file, is_enabled(), kcenon::common::interfaces::log_entry::level, kcenon::common::interfaces::log_entry::line, kcenon::common::interfaces::log_entry::message, kcenon::common::ok(), and kcenon::common::interfaces::to_string().

Here is the call graph for this function:

◆ log() [2/2]

VoidResult kcenon::common::logging::ConsoleLogger::log ( interfaces::log_level level,
const std::string & message )
inlineoverrideexportvirtual

Log a message with specified level.

Parameters
levelLog level
messageLog message
Returns
VoidResult indicating success or error

Implements kcenon::common::interfaces::ILogger.

Definition at line 108 of file logging.cppm.

108 {
109 if (!is_enabled(level)) {
110 return kcenon::common::ok();
111 }
112 std::cout << "[" << interfaces::to_string(level) << "] " << message << std::endl;
113 return kcenon::common::ok();
114 }

References is_enabled(), kcenon::common::ok(), and kcenon::common::interfaces::to_string().

Here is the call graph for this function:

◆ set_level()

VoidResult kcenon::common::logging::ConsoleLogger::set_level ( interfaces::log_level level)
inlineoverrideexportvirtual

Set the minimum log level.

Parameters
levelMinimum level for messages to be logged
Returns
VoidResult indicating success or error

Implements kcenon::common::interfaces::ILogger.

Definition at line 133 of file logging.cppm.

133 {
134 level_ = level;
135 return kcenon::common::ok();
136 }

References level_, and kcenon::common::ok().

Here is the call graph for this function:

Member Data Documentation

◆ level_

interfaces::log_level kcenon::common::logging::ConsoleLogger::level_
exportprivate

Definition at line 148 of file logging.cppm.

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


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