ChainCLI
A modern C++20 command-line interface library
Loading...
Searching...
No Matches
cli::logging::Logger Class Reference

Logger class for handling log messages. More...

#include <logger.h>

Inheritance diagram for cli::logging::Logger:
cli::logging::AbstractLogger

Public Member Functions

 Logger (const Logger &)=delete
 
Loggeroperator= (const Logger &)=delete
 
 Logger (Logger &&)=default
 
Loggeroperator= (Logger &&)=default
 
 Logger (LogLevel lvl=LogLevel::TRACE)
 Construct a new Logger object with the specified minimum log level.
 
void setLevel (LogLevel lvl) override
 Set the minimum log level for this logger.
 
void addHandler (std::unique_ptr< AbstractHandler > handlerPtr) override
 Add a log handler.
 
void removeAllHandlers () override
 Remove all log handlers.
 
void log (LogLevel lvl, const std::string &msg) const override
 Log a message at the specified log level.
 
std::ostream & getStream (LogLevel lvl) override
 Get the stream for the specified log level.
 
- Public Member Functions inherited from cli::logging::AbstractLogger
template<typename... Args>
void log (LogLevel lvl, const std::string &fmt, Args &&...args) const
 Log a message at the specified log level using a format string to print the passed arguments.
 
template<typename... Args>
void trace (const std::string &fmt, Args &&...args)
 Log a message at the TRACE level.
 
template<typename... Args>
void verbose (const std::string &fmt, Args &&...args)
 Log a message at the VERBOSE level.
 
template<typename... Args>
void debug (const std::string &fmt, Args &&...args)
 Log a message at the DEBUG level.
 
template<typename... Args>
void success (const std::string &fmt, Args &&...args)
 Log a message at the SUCCESS level.
 
template<typename... Args>
void info (const std::string &fmt, Args &&...args)
 Log a message at the INFO level.
 
template<typename... Args>
void warning (const std::string &fmt, Args &&...args)
 Log a message at the WARNING level.
 
template<typename... Args>
void error (const std::string &fmt, Args &&...args)
 Log a message at the ERROR level.
 
std::ostream & trace ()
 Get the stream for the TRACE log level.
 
std::ostream & verbose ()
 Get the stream for the VERBOSE log level.
 
std::ostream & debug ()
 Get the stream for the DEBUG log level.
 
std::ostream & success ()
 Get the stream for the SUCCESS log level.
 
std::ostream & info ()
 Get the stream for the INFO log level.
 
std::ostream & warning ()
 Get the stream for the WARNING log level.
 
std::ostream & error ()
 Get the stream for the ERROR log level.
 

Detailed Description

Logger class for handling log messages.

Constructor & Destructor Documentation

◆ Logger()

inline_t cli::logging::Logger::Logger ( LogLevel  lvl = LogLevel::TRACE)
explicit

Construct a new Logger object with the specified minimum log level.

Parameters
lvlThe minimum log level for this logger

Member Function Documentation

◆ addHandler()

inline_t void cli::logging::Logger::addHandler ( std::unique_ptr< AbstractHandler handlerPtr)
overridevirtual

Add a log handler.

Parameters
handlerPtrThe log handler to add

Implements cli::logging::AbstractLogger.

◆ getStream()

inline_t std::ostream & cli::logging::Logger::getStream ( LogLevel  lvl)
overridevirtual

Get the stream for the specified log level.

Parameters
lvlThe log level
Returns
The output stream for the specified log level

Implements cli::logging::AbstractLogger.

◆ log()

inline_t void cli::logging::Logger::log ( LogLevel  lvl,
const std::string &  message 
) const
overridevirtual

Log a message at the specified log level.

Parameters
lvlThe log level
messageThe message to log

Implements cli::logging::AbstractLogger.

◆ removeAllHandlers()

void cli::logging::Logger::removeAllHandlers ( )
inlineoverridevirtual

Remove all log handlers.

Implements cli::logging::AbstractLogger.

◆ setLevel()

inline_t void cli::logging::Logger::setLevel ( LogLevel  lvl)
overridevirtual

Set the minimum log level for this logger.

Parameters
lvlThe new minimum log level

Implements cli::logging::AbstractLogger.


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