diff options
Diffstat (limited to 'Debug.cpp')
-rw-r--r-- | Debug.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Debug.cpp b/Debug.cpp new file mode 100644 index 0000000..eb8b2d2 --- /dev/null +++ b/Debug.cpp @@ -0,0 +1,39 @@ +#include "Debug.hpp" + +const bool isPrintSourceFile = false; +const debug::LogLevel debugPrintLevel = debug::LogLevel::INFO; + +void ::debug::WriteLog(std::string message, debug::LogLevel level, debug::LogSource source, std::string sourceFile, + int lineInFile) { + if (debugPrintLevel > level) + return; + std::string levelText; + switch (level) { + case FATAL: + levelText = "FATAL"; + break; + case ERROR: + levelText = "ERROR"; + break; + case WARNING: + levelText = "WARNING"; + break; + case INFO: + levelText = "INFO"; + break; + case DEBUG: + levelText = "DEBUG"; + break; + } + std::string file = " " + sourceFile + ":" + std::to_string(lineInFile); + std::cout << "[" << levelText << "]: " << message << (isPrintSourceFile ? file : "") << std::endl; + if (level <= LogLevel::ERROR) { + if (level <= LogLevel::FATAL) + exit(-1); + Exception exception; + exception.message = message; + exception.level = level; + exception.source = source; + throw exception; + } +}
\ No newline at end of file |