diff --git a/src/log/FileLog.cpp b/src/log/FileLog.cpp index b08cd2038..a1e801593 100644 --- a/src/log/FileLog.cpp +++ b/src/log/FileLog.cpp @@ -41,7 +41,7 @@ FileLog::FileLog(const char *fileName) { uv_fs_t req; - m_file = uv_fs_open(uv_default_loop(), &req, fileName, O_CREAT | O_APPEND, 0644, nullptr); + m_file = uv_fs_open(uv_default_loop(), &req, fileName, O_CREAT | O_APPEND | O_WRONLY, 0644, nullptr); uv_fs_req_cleanup(&req); } diff --git a/src/log/Log.cpp b/src/log/Log.cpp index 6d509ae71..541486ebd 100644 --- a/src/log/Log.cpp +++ b/src/log/Log.cpp @@ -44,23 +44,27 @@ Log *Log::m_self = nullptr; void Log::message(Log::Level level, const char* fmt, ...) { va_list args; + va_list copy; va_start(args, fmt); for (ILogBackend *backend : m_backends) { - backend->message(level, fmt, args); + va_copy(copy, args); + backend->message(level, fmt, copy); + va_end(copy); } - - va_end(args); } void Log::text(const char* fmt, ...) { va_list args; + va_list copy; va_start(args, fmt); for (ILogBackend *backend : m_backends) { - backend->text(fmt, args); + va_copy(copy, args); + backend->text(fmt, copy); + va_end(copy); } va_end(args);