aboutsummaryrefslogtreecommitdiff
path: root/NorthstarDedicatedTest/logging.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'NorthstarDedicatedTest/logging.cpp')
-rw-r--r--NorthstarDedicatedTest/logging.cpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/NorthstarDedicatedTest/logging.cpp b/NorthstarDedicatedTest/logging.cpp
new file mode 100644
index 00000000..021613d9
--- /dev/null
+++ b/NorthstarDedicatedTest/logging.cpp
@@ -0,0 +1,52 @@
+#include "pch.h"
+#include "logging.h"
+#include "context.h"
+#include "dedicated.h"
+#include <vector>
+#include <iostream>
+#include <chrono>
+
+std::vector<LoggingSink> loggingSinks;
+
+void Log(Context context, char* fmt, ...)
+{
+ va_list args;
+ va_start(args, fmt);
+
+ Log(context, fmt, args);
+ va_end(args);
+}
+
+void Log(Context context, char* fmt, va_list args)
+{
+ char buf[1024];
+ vsnprintf_s(buf, _TRUNCATE, fmt, args);
+
+ for (LoggingSink& sink : loggingSinks)
+ sink(context, fmt);
+}
+
+void AddLoggingSink(LoggingSink sink)
+{
+ loggingSinks.push_back(sink);
+}
+
+// default logging sink
+void DefaultLoggingSink(Context context, char* message)
+{
+ time_t now = time(0);
+ tm* localTime = localtime(&now);
+ char timeBuf[10];
+ strftime(timeBuf, sizeof(timeBuf), "%X", localTime);
+
+ std::cout << "[" << timeBuf << "] ";
+ if (context != NONE)
+ std::cout << "[" << GetContextName(context) << "] ";
+
+ std::cout << message;
+
+ if (!IsDedicated())
+ {
+
+ }
+} \ No newline at end of file