вот так 100% верно:
Код:
void logcustom(uint8 lvl, Color color, const char *str, ...)
{
char buf[4096]; //
if(!str || loglevel < lvl)
return;
va_list ap;
_log_setcolor(true,color);
if(logtime)
printf("%s ", GetTimeString().c_str());
va_start(ap, str);
vsprintf(buf, str, ap );
va_end(ap);
char* str_oem = str_convert_log(buf, CP_UTF8, 866);
printf("%s\n", str_oem);
_log_resetcolor(true);
if(logfile)
{
fprintf(logfile, "%s %s\n", getDateString().c_str(), str_oem);
fflush(logfile);
}
fflush(stdout);
delete[] str_oem;
}