Program Listing for File logging.h¶
↰ Return to documentation for file (include/parpecommon/logging.h
)
#ifndef LOGGING_H
#define LOGGING_H
#include <string>
#include <cstdarg>
#include <memory>
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<Logger> 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