libcdoc 0.5.0
libcdoc::Logger Class Reference

Generic interface to implement a logger. More...

#include <Logger.h>

Public Member Functions

virtual ~Logger () noexcept=default
 
void log (LogLevel level, std::string_view file, int line, std::string_view msg)
 Logs given message with given severity, file name and line number.
 
constexpr void setMinLogLevel (LogLevel level) noexcept
 Sets minimum log level for the logger.
 

Protected Member Functions

virtual void logMessage (LogLevel level, std::string_view file, int line, std::string_view msg)
 Logs given message with given severity, file name and line number.
 

Protected Attributes

LogLevel min_level = LEVEL_WARNING
 Minimum level of log messages to log.
 

Detailed Description

Generic interface to implement a logger.

Constructor & Destructor Documentation

◆ ~Logger()

virtual libcdoc::Logger::~Logger ( )
virtualdefaultnoexcept

Member Function Documentation

◆ log()

void libcdoc::Logger::log ( LogLevel  level,
std::string_view  file,
int  line,
std::string_view  msg 
)
inline

Logs given message with given severity, file name and line number.

It tests the log level and if <= min_level invokes logMessage

Parameters
levelSeverity of the log message.
fileFile name where the log message was recorded.
lineLine number in the file where the log message was recorded.
msgThe log message.

◆ logMessage()

virtual void libcdoc::Logger::logMessage ( LogLevel  level,
std::string_view  file,
int  line,
std::string_view  msg 
)
inlineprotectedvirtual

Logs given message with given severity, file name and line number.

Every class implementing the ILogger interface must implement this member function. The efault implementation does nothing. The level should be checked by caller, thus the implementation should expect that level <= min_level

Parameters
levelSeverity of the log message.
fileFile name where the log message was recorded.
lineLine number in the file where the log message was recorded.
msgThe log message.

◆ setMinLogLevel()

constexpr void libcdoc::Logger::setMinLogLevel ( LogLevel  level)
inlineconstexprnoexcept

Sets minimum log level for the logger.

Parameters
levelminimum level to log.

Sets minimum level of log messages to log. For example, if the minimum log level is set to LEVEL_INFO (default), then LEVEL_FATAL, LEVEL_ERROR, LEVEL_WARNING and LEVEL_INFO messages are logged, but not LEVEL_DEBUG or LEVEL_TRACE messages.

Member Data Documentation

◆ min_level

LogLevel libcdoc::Logger::min_level = LEVEL_WARNING
protected

Minimum level of log messages to log.


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