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 Loggerinstance ()
 

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().