diff options
Diffstat (limited to 'Debug.hpp')
-rw-r--r-- | Debug.hpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/Debug.hpp b/Debug.hpp new file mode 100644 index 0000000..1a9efb6 --- /dev/null +++ b/Debug.hpp @@ -0,0 +1,43 @@ +#pragma once + +#include <exception> +#include <queue> +#include <string> +#include <iostream> + +namespace debug { + + enum LogLevel { + FATAL = 0, + ERROR = 5, + WARNING = 10, + INFO = 15, + DEBUG = 20, + }; + + enum LogSource { + Unknown, + Display, + Network, + NetworkClient, + Game, + World, + Field, + Packet, + AssetManager, + }; + + struct Exception : public std::exception { + std::string message; + LogLevel level; + LogSource source; + + const char *what() const noexcept override{ + return this->message.c_str(); + } + }; + + void WriteLog(std::string message, LogLevel level = LogLevel::INFO, LogSource source = LogSource::Unknown, + std::string sourceFile = "", int lineInFile = 0); +#define LOG(MESSAGE, LEVEL, SOURCE) {using namespace debug; debug::WriteLog(MESSAGE,debug::LEVEL,debug::SOURCE,__FILE__,__LINE__);} +}
\ No newline at end of file |