1 #include "Logger.h"
2 #include "SGPStrings.h"
3 #include "Types.h"
4 
5 #include <string_theory/string>
6 
7 #include <stdio.h>
8 #if defined(_MSC_VER)
9 #define vsnprintf(buf, size, format, args) vsnprintf_s(buf, size, _TRUNCATE, format, args)
10 #endif
11 
LogMessage(bool isAssert,LogLevel level,const char * file,const ST::string & str)12 void LogMessage(bool isAssert, LogLevel level, const char* file, const ST::string& str)
13 {
14 	Logger_log(level, str.c_str(), file);
15 
16 	#ifdef ENABLE_ASSERTS
17 	if (isAssert)
18 	{
19 		abort();
20 	}
21 	#endif
22 }
23 
LogMessage(bool isAssert,LogLevel level,const char * file,const char * format,...)24 void LogMessage(bool isAssert, LogLevel level, const char *file, const char *format, ...)
25 {
26 	char message[256];
27 	va_list args;
28 	va_start(args, format);
29 	vsnprintf(message, 256, format, args);
30 	va_end(args);
31 
32 	ST::string err_msg;
33 	ST::string str = st_checked_buffer_to_string(err_msg, ST::char_buffer(message, lengthof(message)));
34 	if (!err_msg.empty())
35 	{
36 		STLOGW("LogMessage: {}", err_msg);
37 	}
38 	LogMessage(isAssert, level, file, str);
39 }
40