.. _program_listing_file_include_parpecommon_logging.h: Program Listing for File logging.h ================================== |exhale_lsh| :ref:`Return to documentation for file ` (``include/parpecommon/logging.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef LOGGING_H #define LOGGING_H #include #include #include namespace parpe { constexpr const char ANSI_COLOR_RED[] = "\x1b[31m"; constexpr const char ANSI_COLOR_GREEN[] = "\x1b[32m"; constexpr const char ANSI_COLOR_YELLOW[] = "\x1b[33m"; constexpr const char ANSI_COLOR_BLUE[] = "\x1b[34m"; constexpr const char ANSI_COLOR_MAGENTA[] = "\x1b[35m"; constexpr const char ANSI_COLOR_CYAN[] = "\x1b[36m"; constexpr const char ANSI_COLOR_RESET[] = "\x1b[0m"; std::string printfToString(const char *fmt, va_list ap); enum class loglevel { critical = 1, error, warning, info, debug }; // Minimum log level that will be printed extern loglevel minimumLogLevel; void logmessage(loglevel lvl, std::string const& msg); void logmessage(loglevel lvl, const char *format, ...); void logmessage(loglevel lvl, const char *format, va_list argptr); void logProcessStats(); void printMPIInfo(); void printDebugInfoAndWait(int seconds = 15); class Logger { public: Logger() = default; explicit Logger(std::string prefix); std::unique_ptr getChild(std::string const& appendedPrefix) const; // TODO add stream operator void logmessage(loglevel lvl, std::string const& msg) const; void logmessage(loglevel lvl, const char *format, ...) const; void logmessage(loglevel lvl, const char *format, va_list argptr) const; void setPrefix(std::string const& pre); std::string const& getPrefix() const; private: std::string prefix; }; } // namespace parpe #endif