|
@@ -0,0 +1,71 @@
|
|
|
+/*
|
|
|
+ * 2D Game Engine
|
|
|
+ * Logger.cpp.c:
|
|
|
+ * Based on pikuma.com 2D game engine in C++ and Lua course
|
|
|
+ * Copyright (c) 2021 986-Studio. All rights reserved.
|
|
|
+ *
|
|
|
+ * Created by Manoël Trapier on 11/02/2021.
|
|
|
+ */
|
|
|
+#include <stdio.h>
|
|
|
+#include <stdint.h>
|
|
|
+#include <stdarg.h>
|
|
|
+#include <time.h>
|
|
|
+#include <Logger.h>
|
|
|
+
|
|
|
+static void printHeader(const char *type, uint8_t colour)
|
|
|
+{
|
|
|
+ time_t curtime = time(NULL);
|
|
|
+ char buf[30];
|
|
|
+ struct tm * p = localtime(&curtime);
|
|
|
+ strftime(buf, 38, "%d-%b-%Y %H:%M:%S", p);
|
|
|
+
|
|
|
+ fprintf(stderr, "\x1B[%d;1m%-5s | %-20s - ", colour, type, buf);
|
|
|
+}
|
|
|
+
|
|
|
+void Logger::Log(const char *message, ...)
|
|
|
+{
|
|
|
+ va_list list;
|
|
|
+ va_start(list, message);
|
|
|
+
|
|
|
+ printHeader("LOG", 32);
|
|
|
+ vfprintf(stderr, message, list);
|
|
|
+ fprintf(stderr, "\x1B[0m\n");
|
|
|
+
|
|
|
+ va_end(list);
|
|
|
+}
|
|
|
+
|
|
|
+void Logger::Error(const char *message, ...)
|
|
|
+{
|
|
|
+ va_list list;
|
|
|
+ va_start(list, message);
|
|
|
+
|
|
|
+ printHeader("ERROR", 31);
|
|
|
+ vfprintf(stderr, message, list);
|
|
|
+ fprintf(stderr, "\x1B[0m\n");
|
|
|
+
|
|
|
+ va_end(list);
|
|
|
+}
|
|
|
+
|
|
|
+void Logger::Warning(const char *message, ...)
|
|
|
+{
|
|
|
+ va_list list;
|
|
|
+ va_start(list, message);
|
|
|
+
|
|
|
+ printHeader("WARN", 33);
|
|
|
+ vfprintf(stderr, message, list);
|
|
|
+ fprintf(stderr, "\x1B[0m\n");
|
|
|
+
|
|
|
+ va_end(list);
|
|
|
+}
|
|
|
+
|
|
|
+void Logger::Info(const char *message, ...)
|
|
|
+{
|
|
|
+ va_list list;
|
|
|
+ va_start(list, message);
|
|
|
+
|
|
|
+ printHeader("INFO", 36);
|
|
|
+ vfprintf(stderr, message, list);
|
|
|
+ fprintf(stderr, "\x1B[0m\n");
|
|
|
+
|
|
|
+ va_end(list);
|
|
|
+}
|