.. _program_listing_file_include_gwmodelpp_Logger.h: Program Listing for File Logger.h ================================= |exhale_lsh| :ref:`Return to documentation for file ` (``include/gwmodelpp/Logger.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef GWMLOGGER_H #define GWMLOGGER_H #include #include #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; 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