Program Listing for File Logger.h
↰ Return to documentation for file (include/gwmodelpp/Logger.h
)
#ifndef GWMLOGGER_H
#define GWMLOGGER_H
#include <functional>
#include <string>
#define GWM_LOGGING(MESSAGE, LEVEL) gwm::Logger::printer((MESSAGE), (LEVEL), __FUNCTION__, __FILE__)
#define GWM_LOG_DEBUG(MESSAGE) gwm::Logger::printer((MESSAGE), Logger::LogLevel::LOG_DEBUG, __FUNCTION__, __FILE__)
#define GWM_LOG_INFO(MESSAGE) gwm::Logger::printer((MESSAGE), Logger::LogLevel::LOG_INFO, __FUNCTION__, __FILE__)
#define GWM_LOG_WARNNING(MESSAGE) gwm::Logger::printer((MESSAGE), Logger::LogLevel::LOG_WARNING, __FUNCTION__, __FILE__)
#define GWM_LOG_ERROR(MESSAGE) gwm::Logger::printer((MESSAGE), Logger::LogLevel::LOG_ERR, __FUNCTION__, __FILE__)
namespace gwm
{
class Logger
{
public:
enum class LogLevel
{
LOG_EMERG = 0,
LOG_ALERT = 1,
LOG_CRIT = 2,
LOG_ERR = 3,
LOG_WARNING = 4,
LOG_NOTICE = 5,
LOG_INFO = 6,
LOG_DEBUG = 7
};
using Printer = std::function<void (std::string, LogLevel, std::string, std::string)>;
static Printer printer;
static void logging(std::string message, LogLevel level, std::string fun_name, std::string file_name)
{
printer(message, level, fun_name, file_name);
}
};
}
#endif // GWMLOGGER_H