aboutsummaryrefslogtreecommitdiff
path: root/src/Log.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Log.cpp')
-rw-r--r--src/Log.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/Log.cpp b/src/Log.cpp
new file mode 100644
index 0000000..5d77d73
--- /dev/null
+++ b/src/Log.cpp
@@ -0,0 +1,40 @@
+#include "../include/Log.hpp"
+#include <cstdarg>
+#include <mutex>
+
+static std::mutex mutexDebug;
+
+namespace odhtdb
+{
+ // TODO: Add color (if output is tty)?
+
+ void Log::debug(const char *fmt, ...)
+ {
+ std::lock_guard<std::mutex> lock(mutexDebug);
+ va_list args;
+ va_start(args, fmt);
+ fputs("Debug: ", stdout);
+ vfprintf(stdout, fmt, args);
+ va_end(args);
+ }
+
+ void Log::warn(const char *fmt, ...)
+ {
+ std::lock_guard<std::mutex> lock(mutexDebug);
+ va_list args;
+ va_start(args, fmt);
+ fputs("Warning: ", stdout);
+ vfprintf(stdout, fmt, args);
+ va_end(args);
+ }
+
+ void Log::error(const char *fmt, ...)
+ {
+ std::lock_guard<std::mutex> lock(mutexDebug);
+ va_list args;
+ va_start(args, fmt);
+ fputs("Error: ", stderr);
+ vfprintf(stderr, fmt, args);
+ va_end(args);
+ }
+}