Fix logging of long strings via RotatedFileLogger

This commit is contained in:
Ruslan Mustakov 2017-10-05 16:16:20 +07:00
parent 454dec2f2f
commit 01ebcfe841
1 changed files with 4 additions and 1 deletions

View File

@ -177,11 +177,14 @@ void RotatedFileLogger::logv(const char *p_format, va_list p_list, bool p_err) {
const int static_buf_size = 512;
char static_buf[static_buf_size];
char *buf = static_buf;
va_list list_copy;
va_copy(list_copy, p_list);
int len = vsnprintf(buf, static_buf_size, p_format, p_list);
if (len >= static_buf_size) {
buf = (char *)Memory::alloc_static(len + 1);
vsnprintf(buf, len + 1, p_format, p_list);
vsnprintf(buf, len + 1, p_format, list_copy);
}
va_end(list_copy);
file->store_buffer((uint8_t *)buf, len);
if (len >= static_buf_size) {
Memory::free_static(buf);