aboutsummaryrefslogtreecommitdiff
path: root/src/Log.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Log.cpp')
-rw-r--r--src/Log.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/Log.cpp b/src/Log.cpp
new file mode 100644
index 0000000..df424f0
--- /dev/null
+++ b/src/Log.cpp
@@ -0,0 +1,43 @@
+#include "../include/Log.hpp"
+#include <cstdarg>
+#include <cstdio>
+#include <mutex>
+
+namespace sibs
+{
+ // TODO: Disable color if stdout/stderr is not tty
+ static std::mutex mutexLog;
+
+ void Log::debug(const char *fmt, ...)
+ {
+ std::lock_guard<std::mutex> lock(mutexLog);
+ va_list args;
+ va_start(args, fmt);
+ fputs("\033[1;32mDebug:\033[0m ", stdout);
+ vfprintf(stdout, fmt, args);
+ fputs("\n", stdout);
+ va_end(args);
+ }
+
+ void Log::warn(const char *fmt, ...)
+ {
+ std::lock_guard<std::mutex> lock(mutexLog);
+ va_list args;
+ va_start(args, fmt);
+ fputs("\033[1;33mWarning:\033[0m ", stdout);
+ vfprintf(stdout, fmt, args);
+ fputs("\n", stdout);
+ va_end(args);
+ }
+
+ void Log::error(const char *fmt, ...)
+ {
+ std::lock_guard<std::mutex> lock(mutexLog);
+ va_list args;
+ va_start(args, fmt);
+ fputs("\033[1;31mError:\033[0m ", stderr);
+ vfprintf(stderr, fmt, args);
+ fputs("\n", stderr);
+ va_end(args);
+ }
+}