|
@@ -444,11 +444,18 @@ TOOLKIT_API int xlog_log_v(const char *inst, int level, const char *fmt, va_list
|
|
|
|
|
|
|
|
|
n = _vscprintf(fmt, arg);//因为添加了Debug {}, 所以可能超过了1024长度
|
|
|
- if (n >= 0 && n < 1050) {
|
|
|
- char *buf = _alloca(n+1);
|
|
|
- vsprintf(buf, fmt, arg);
|
|
|
+ if (n >= 0) {
|
|
|
+ int len = 1050 + 1;
|
|
|
+ char *buf = malloc(len);
|
|
|
+ if (buf) {
|
|
|
+ memset(buf, 0, len);
|
|
|
+ vsnprintf(buf, 1050, fmt, arg);
|
|
|
+ logfactory_log_record(log->factory, log, level, ft.dwLowDateTime, ft.dwHighDateTime, buf, strlen(buf));
|
|
|
+ free(buf);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- logfactory_log_record(log->factory, log, level, ft.dwLowDateTime, ft.dwHighDateTime, buf, n);
|
|
|
return 0;
|
|
|
}
|
|
|
return -1;
|