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