Libftpp
A modern C++ library
Logger Class Reference

Logger class for logging messages to console and file with different log levels. This class is implemented as a singleton to ensure a single instance throughout the application. More...

#include <logger.hpp>

Public Member Functions

 Logger ()
 
 Logger (const std::string &outputfile, LogLevel level=LogLevel::DEBUG)
 
 ~Logger ()
 
void setLogLevel (LogLevel level)
 
void setOutputFile (const std::string &filename)
 
const std::string getOutputPathFile () const
 
void log (LogLevel level, const std::string &message)
 Log a message to the log file if the log level is sufficient. More...
 
void logConsole (LogLevel level, const std::string &message)
 Log a message to the console if the log level is sufficient. More...
 

Static Public Member Functions

static Logger & instance ()
 

Detailed Description

Logger class for logging messages to console and file with different log levels. This class is implemented as a singleton to ensure a single instance throughout the application.

Note
Thread safety is ensured for console output and file output
You must call setOutputFile before logging to file, if you didn't provide a filename a timestamped one will be generated
If you want to log into a specific file :
Logger::instance().log(LogLevel::DEBUG, "This is a debug message");
Logger::instance().log(LogLevel::INFO, "This is an info message");
Logger::instance().log(LogLevel::WARNING, "This is a warning message");
Logger::instance().log(LogLevel::ERROR, "This is an error message");
Logger::instance().logConsole(LogLevel::WARNING, "This is a warning message to console only");
void setLogLevel(LogLevel level)
Definition: logger.cpp:31
void logConsole(LogLevel level, const std::string &message)
Log a message to the console if the log level is sufficient.
Definition: logger.cpp:127
void log(LogLevel level, const std::string &message)
Log a message to the log file if the log level is sufficient.
Definition: logger.cpp:113
static Logger & instance()
Definition: logger.cpp:25
void setOutputFile(const std::string &filename)
Definition: logger.cpp:36

Definition at line 46 of file logger.hpp.

Constructor & Destructor Documentation

◆ Logger() [1/2]

Logger::Logger ( )

Definition at line 3 of file logger.cpp.

References setOutputFile().

◆ Logger() [2/2]

Logger::Logger ( const std::string &  outputfile,
LogLevel  level = LogLevel::DEBUG 
)

Definition at line 8 of file logger.cpp.

References setOutputFile().

◆ ~Logger()

Logger::~Logger ( )

Definition at line 18 of file logger.cpp.

Member Function Documentation

◆ getOutputPathFile()

const std::string Logger::getOutputPathFile ( ) const

Definition at line 13 of file logger.cpp.

◆ instance()

Logger & Logger::instance ( )
static

Definition at line 25 of file logger.cpp.

◆ log()

void Logger::log ( LogLevel  level,
const std::string &  message 
)

Log a message to the log file if the log level is sufficient.

Parameters
levelThe log level of the message.
messageThe message to log.

Definition at line 113 of file logger.cpp.

◆ logConsole()

void Logger::logConsole ( LogLevel  level,
const std::string &  message 
)

Log a message to the console if the log level is sufficient.

Parameters
levelThe log level of the message.
messageThe message to log.

Definition at line 127 of file logger.cpp.

◆ setLogLevel()

void Logger::setLogLevel ( LogLevel  level)

Definition at line 31 of file logger.cpp.

◆ setOutputFile()

void Logger::setOutputFile ( const std::string &  filename)

Definition at line 36 of file logger.cpp.

Referenced by Logger().