| 91 | } |
| 92 | |
| 93 | inline void vaListToStringBigData(const char* format, va_list st, std::string& strVaList) { |
| 94 | va_list argcopy; |
| 95 | va_copy(argcopy, st); |
| 96 | int len = vsnprintf(NULL, 0, format, argcopy) + 1; |
| 97 | va_end(argcopy); |
| 98 | |
| 99 | if (len > LOG_SIZE) { |
| 100 | if (len > LOG_SIZE_DEBUG) { |
| 101 | len = LOG_SIZE_DEBUG; |
| 102 | } |
| 103 | char* tmpSrc = new char[len]; |
| 104 | tmpSrc[0] = 0; |
| 105 | vsnprintf(tmpSrc, len, format, st); |
| 106 | tmpSrc[len - 1] = 0; |
| 107 | strVaList = tmpSrc; |
| 108 | delete[] tmpSrc; |
| 109 | } else { |
| 110 | vaListToString(format, st, strVaList); |
| 111 | } |
| 112 | } |
| 113 | |
| 114 | void DefultLogImpl::log(LogLevel level, const char *tag, const char *func, int line, const char *format, ...) { |
| 115 | va_list args; |