Daniele Bartolini 12 лет назад
Родитель
Сommit
e59a62969f
3 измененных файлов с 57 добавлено и 15 удалено
  1. 7 6
      engine/core/Error.h
  2. 45 9
      engine/core/Log.cpp
  3. 5 0
      engine/core/Log.h

+ 7 - 6
engine/core/Error.h

@@ -24,6 +24,7 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 OTHER DEALINGS IN THE SOFTWARE.
 */
 
+#include "Log.h"
 #include <stdlib.h>
 #include <stdio.h>
 #include <stdarg.h>
@@ -83,13 +84,13 @@ inline void log_backtrace()
 			int status;
 			char* real_name = abi::__cxa_demangle(mangled_name, 0, 0, &status);
 
-			printf("\t[%d] %s: (%s)+%s %s\n", i, messages[i], (status == 0 ? real_name : mangled_name), offset_begin, offset_end);
+			Log::e("\t[%d] %s: (%s)+%s %s\n", i, messages[i], (status == 0 ? real_name : mangled_name), offset_begin, offset_end);
 			free(real_name);
 		}
 		// otherwise, print the whole line
 		else
 		{
-			printf("\t[%d] %s\n", i, messages[i]);
+			Log::e("\t[%d] %s\n", i, messages[i]);
 		}
 	}
 	free(messages);
@@ -102,11 +103,11 @@ inline void abort(const char* file, int line, const char* message, ...)
 {
 	va_list ap;
 	va_start(ap, message);
-	vprintf(message, ap);
+	Log::e1(message, ap);
 	va_end(ap);
-	printf("\tIn: %s:%d\n\n", file, line);
-	printf("Backtrace:\n\n");
-	fflush(0);
+	Log::e("\tIn: %s:%d\n\n", file, line);
+	Log::e("Backtrace:\n\n");
+	//fflush(0);
 	log_backtrace();
 	exit(EXIT_FAILURE);
 }

+ 45 - 9
engine/core/Log.cpp

@@ -72,11 +72,11 @@ void Log::log_message(LogSeverity::Enum severity, const char* message, ::va_list
 	}
 	va_end(arg_copy);
 
-	// Log to remote clients
-	if (device()->console() != NULL && string::strlen(buf) > 0)
-	{
-		device()->console()->log_to_all(buf, severity);
-	}
+	// // Log to remote clients
+	// if (device()->console() != NULL && string::strlen(buf) > 0)
+	// {
+	// 	device()->console()->log_to_all(buf, severity);
+	// }
 }
 
 //-----------------------------------------------------------------------------
@@ -84,7 +84,7 @@ void Log::d(const char* message, ...)
 {
 	va_list args;
 	va_start (args, message);
-	log_message(LogSeverity::DEBUG, message, args);
+	Log::d1(message, args);
 	va_end (args);
 }
 
@@ -93,7 +93,7 @@ void Log::e(const char* message, ...)
 {
 	va_list args;
 	va_start (args, message);
-	log_message(LogSeverity::ERROR, message, args);
+	Log::e1(message, args);
 	va_end (args);
 }
 
@@ -102,7 +102,7 @@ void Log::w(const char* message, ...)
 {
 	va_list args;
 	va_start (args, message);
-	log_message(LogSeverity::WARN, message, args);
+	Log::w1(message, args);
 	va_end (args);
 }
 
@@ -111,8 +111,44 @@ void Log::i(const char* message, ...)
 {
 	va_list args;
 	va_start (args, message);
-	log_message(LogSeverity::INFO, message, args);
+	Log::i1(message, args);
 	va_end (args);
 }
 
+//-----------------------------------------------------------------------------
+void Log::d1(const char* message, ::va_list args)
+{
+	va_list arg_copy;
+	__va_copy(arg_copy, args);
+	log_message(LogSeverity::DEBUG, message, arg_copy);
+	va_end(arg_copy);
+}
+
+//-----------------------------------------------------------------------------
+void Log::e1(const char* message, ::va_list args)
+{
+	va_list arg_copy;
+	__va_copy(arg_copy, args);
+	log_message(LogSeverity::ERROR, message, arg_copy);
+	va_end(arg_copy);
+}
+
+//-----------------------------------------------------------------------------
+void Log::w1(const char* message, ::va_list args)
+{
+	va_list arg_copy;
+	__va_copy(arg_copy, args);
+	log_message(LogSeverity::WARN, message, arg_copy);
+	va_end(arg_copy);
+}
+
+//-----------------------------------------------------------------------------
+void Log::i1(const char* message, ::va_list args)
+{
+	va_list arg_copy;
+	__va_copy(arg_copy, args);
+	log_message(LogSeverity::INFO, message, arg_copy);
+	va_end(arg_copy);
+}
+
 } // namespace crown

+ 5 - 0
engine/core/Log.h

@@ -65,9 +65,14 @@ public:
 	static void			e(const char* message, ...);
 	static void			w(const char* message, ...);
 	static void			i(const char* message, ...);
+	static void			d1(const char* message, ::va_list args);
+	static void			e1(const char* message, ::va_list args);
+	static void			w1(const char* message, ::va_list args);
+	static void			i1(const char* message, ::va_list args);
 
 private:
 
+
 	static LogSeverity::Enum m_threshold;
 };