diff options
Diffstat (limited to 'src/debug/Log.cpp')
-rw-r--r-- | src/debug/Log.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/debug/Log.cpp b/src/debug/Log.cpp new file mode 100644 index 00000000..65ba67c4 --- /dev/null +++ b/src/debug/Log.cpp @@ -0,0 +1,41 @@ +#include "Log.hpp" +#include "../defines.hpp" + +#include <fstream> + +void Debug::log(LogLevel level, const char* fmt, ...) { + va_list args; + va_start(args, fmt); + + // log to a file + const std::string DEBUGPATH = ISDEBUG ? "/tmp/hypr/hyprlandd.log" : "/tmp/hypr/hyprland.log"; + std::ofstream ofs; + ofs.open(DEBUGPATH, std::ios::out | std::ios::app); + + switch (level) { + case LOG: + ofs << "[LOG] "; + break; + case WARN: + ofs << "[WARN] "; + break; + case ERR: + ofs << "[ERR] "; + break; + case CRIT: + ofs << "[CRITICAL] "; + break; + default: + break; + } + + char buf[LOGMESSAGESIZE] = ""; + + vsprintf(buf, fmt, args); + + ofs << buf << "\n"; + + ofs.close(); + + va_end(args); +} |