Common System 0.2.0
Common interfaces and patterns for system integration
Loading...
Searching...
No Matches
kcenon::common::interfaces::ILogger Interface Referenceabstractexport

Standard interface for logging implementations. More...

#include <logger_interface.h>

Inheritance diagram for kcenon::common::interfaces::ILogger:
Inheritance graph
Collaboration diagram for kcenon::common::interfaces::ILogger:
Collaboration graph

Public Member Functions

virtual ~ILogger ()=default
 
virtual VoidResult log (log_level level, const std::string &message)=0
 Log a message with specified level.
 
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 VoidResult log (const log_entry &entry)=0
 Log a structured entry.
 
virtual bool is_enabled (log_level level) const =0
 Check if logging is enabled for the specified level.
 
virtual VoidResult set_level (log_level level)=0
 Set the minimum log level.
 
virtual log_level get_level () const =0
 Get the current minimum log level.
 
virtual VoidResult flush ()=0
 Flush any buffered log messages.
 
virtual ~ILogger ()=default
 
virtual VoidResult log (log_level level, const std::string &message)=0
 
virtual VoidResult log (log_level level, std::string_view message, const source_location &loc=source_location::current())
 
virtual VoidResult log (const log_entry &entry)=0
 
virtual bool is_enabled (log_level level) const =0
 
virtual VoidResult set_level (log_level level)=0
 
virtual log_level get_level () const =0
 
virtual VoidResult flush ()=0
 

Detailed Description

Standard interface for logging implementations.

This interface defines the contract for any logging implementation, allowing modules to work with different logging backends without direct dependencies.

Note
Issue #177: Extended with C++20 source_location support.
Issue #217: The deprecated file/line/function overload was removed in v3.0.0. Use the source_location-based log() method.
Examples
multi_system_app/main.cpp.

Definition at line 95 of file logger.cppm.

Constructor & Destructor Documentation

◆ ~ILogger() [1/2]

virtual kcenon::common::interfaces::ILogger::~ILogger ( )
virtualdefault

◆ ~ILogger() [2/2]

virtual kcenon::common::interfaces::ILogger::~ILogger ( )
exportvirtualdefault

Member Function Documentation

◆ flush() [1/2]

virtual VoidResult kcenon::common::interfaces::ILogger::flush ( )
pure virtual

Flush any buffered log messages.

Returns
VoidResult indicating success or error

Implemented in kcenon::common::interfaces::NullLogger, and kcenon::common::logging::ConsoleLogger.

◆ flush() [2/2]

virtual VoidResult kcenon::common::interfaces::ILogger::flush ( )
exportpure virtual

◆ get_level() [1/2]

virtual log_level kcenon::common::interfaces::ILogger::get_level ( ) const
pure virtual

Get the current minimum log level.

Returns
Current minimum log level

Implemented in kcenon::common::interfaces::NullLogger, and kcenon::common::logging::ConsoleLogger.

◆ get_level() [2/2]

virtual log_level kcenon::common::interfaces::ILogger::get_level ( ) const
exportpure virtual

◆ is_enabled() [1/2]

virtual bool kcenon::common::interfaces::ILogger::is_enabled ( log_level level) const
pure virtual

Check if logging is enabled for the specified level.

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

Implemented in kcenon::common::interfaces::NullLogger, and kcenon::common::logging::ConsoleLogger.

◆ is_enabled() [2/2]

virtual bool kcenon::common::interfaces::ILogger::is_enabled ( log_level level) const
exportpure virtual

◆ log() [1/6]

virtual VoidResult kcenon::common::interfaces::ILogger::log ( const log_entry & entry)
pure virtual

Log a structured entry.

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

Implemented in kcenon::common::interfaces::NullLogger, and kcenon::common::logging::ConsoleLogger.

◆ log() [2/6]

virtual VoidResult kcenon::common::interfaces::ILogger::log ( const log_entry & entry)
exportpure virtual

◆ log() [3/6]

virtual VoidResult kcenon::common::interfaces::ILogger::log ( log_level level,
const std::string & message )
pure virtual

Log a message with specified level.

Parameters
levelLog level
messageLog message
Returns
VoidResult indicating success or error

Implemented in kcenon::common::interfaces::NullLogger, and kcenon::common::logging::ConsoleLogger.

Referenced by log().

Here is the caller graph for this function:

◆ log() [4/6]

virtual VoidResult kcenon::common::interfaces::ILogger::log ( log_level level,
const std::string & message )
exportpure virtual

◆ log() [5/6]

virtual VoidResult kcenon::common::interfaces::ILogger::log ( log_level level,
std::string_view message,
const source_location & loc = source_location::current() )
inlinevirtual

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

This is the preferred method for logging with source location. The default implementation delegates to the simple log(level, message) method for implementations that don't need source location.

Parameters
levelLog level
messageLog message (string_view for efficiency)
locSource location (automatically captured at call site)
Returns
VoidResult indicating success or error
Note
Issue #177: Method with source_location support. Implementations should override this method to directly use source_location for improved type safety and efficiency.
logger->log(log_level::info, "Operation completed");
// Source location is automatically captured

Implemented in kcenon::common::interfaces::NullLogger.

Definition at line 186 of file logger_interface.h.

188 {
189 // Default implementation delegates to simple log method
190 // Derived classes should override to use source location information
191 (void)loc; // Unused in default implementation
192 return log(level, std::string(message));
193 }
virtual VoidResult log(log_level level, const std::string &message)=0
Log a message with specified level.

References log().

Here is the call graph for this function:

◆ log() [6/6]

virtual VoidResult kcenon::common::interfaces::ILogger::log ( log_level level,
std::string_view message,
const source_location & loc = source_location::current() )
inlineexportvirtual

Implemented in kcenon::common::interfaces::NullLogger.

Definition at line 101 of file logger.cppm.

102 {
103 (void)loc;
104 return log(level, std::string(message));
105 }

References log().

Here is the call graph for this function:

◆ set_level() [1/2]

virtual VoidResult kcenon::common::interfaces::ILogger::set_level ( log_level level)
pure virtual

Set the minimum log level.

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

Implemented in kcenon::common::interfaces::NullLogger, and kcenon::common::logging::ConsoleLogger.

◆ set_level() [2/2]

virtual VoidResult kcenon::common::interfaces::ILogger::set_level ( log_level level)
exportpure virtual

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