diff --git a/include/mbgl/util/logging.hpp b/include/mbgl/util/logging.hpp index d072673e7..03db2d746 100644 --- a/include/mbgl/util/logging.hpp +++ b/include/mbgl/util/logging.hpp @@ -67,8 +67,8 @@ public: private: static void record(EventSeverity severity, Event event, const std::string &msg); - static void record(EventSeverity severity, Event event, const char* format, ...); - static void record(EventSeverity severity, Event event, int64_t code); + static void record(EventSeverity severity, Event event, const char* format = "", ...); + static void record(EventSeverity severity, Event event, int64_t code, const char* format = "", ...); static void record(EventSeverity severity, Event event, int64_t code, const std::string &msg); // This method is the data sink that must be implemented by each platform we diff --git a/src/mbgl/util/logging.cpp b/src/mbgl/util/logging.cpp index 0552eb36c..d322bd367 100644 --- a/src/mbgl/util/logging.cpp +++ b/src/mbgl/util/logging.cpp @@ -38,8 +38,14 @@ void Log::record(EventSeverity severity, Event event, const char* format, ...) { record(severity, event, -1, msg); } -void Log::record(EventSeverity severity, Event event, int64_t code) { - record(severity, event, code, std::string()); +void Log::record(EventSeverity severity, Event event, int64_t code, const char* format, ...) { + va_list args; + va_start(args, format); + char msg[4096]; + vsnprintf(msg, sizeof(msg), format, args); + va_end(args); + + record(severity, event, code, std::string{ msg }); } void Log::record(EventSeverity severity, Event event, int64_t code, const std::string &msg) {