Added support for different log levels
authorIngo Ruhnke <grumbel@gmail.com>
Mon, 11 Aug 2014 21:53:14 +0000 (23:53 +0200)
committerIngo Ruhnke <grumbel@gmail.com>
Mon, 11 Aug 2014 22:13:00 +0000 (00:13 +0200)
src/util/log.cpp
src/util/log.hpp

index 6ce6f73..2125afc 100644 (file)
@@ -22,6 +22,8 @@
 #include "math/rectf.hpp"
 #include "supertux/console.hpp"
 
+LogLevel g_log_level = LOG_WARNING;
+
 static std::ostream& get_logging_instance (void)
 {
   if (Console::instance != NULL)
index 7882eac..a4bfabe 100644 (file)
 #include <config.h>
 #include <ostream>
 
+enum LogLevel { LOG_NONE, LOG_FATAL, LOG_WARNING, LOG_INFO, LOG_DEBUG };
+extern LogLevel g_log_level;
+
 std::ostream& log_debug_f(const char* file, int line);
-#define log_debug log_debug_f(__FILE__, __LINE__)
+#define log_debug if (g_log_level < LOG_DEBUG) {} else log_debug_f(__FILE__, __LINE__)
 
 std::ostream& log_info_f(const char* file, int line);
-#define log_info log_info_f(__FILE__, __LINE__)
+#define log_info if (g_log_level < LOG_INFO) {} else log_info_f(__FILE__, __LINE__)
 
 std::ostream& log_warning_f(const char* file, int line);
-#define log_warning log_warning_f(__FILE__, __LINE__)
+#define log_warning if (g_log_level < LOG_WARNING) {} else log_warning_f(__FILE__, __LINE__)
 
 std::ostream& log_fatal_f(const char* file, int line);
-#define log_fatal log_fatal_f(__FILE__, __LINE__)
+#define log_fatal if (g_log_level < LOG_FATAL) {} else log_fatal_f(__FILE__, __LINE__)
 
 class Vector;
 std::ostream& operator<< (std::ostream& str, const Vector& vector);