aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/debug/Log.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/debug/Log.cpp')
-rw-r--r--src/debug/Log.cpp41
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);
+}