From a6068ad6f64eee474d0cc5343db765dba0269034 Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Thu, 31 Jul 2025 09:39:10 -0400 Subject: [PATCH] refactor: Log use std::format in place of snprintf, when not running on macOS... --- src/lib/base/Log.cpp | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/lib/base/Log.cpp b/src/lib/base/Log.cpp index 6986921ca..35d98d0a2 100644 --- a/src/lib/base/Log.cpp +++ b/src/lib/base/Log.cpp @@ -16,7 +16,10 @@ #include #include #include -#include + +#ifndef __APPLE__ +#include +#endif const int kPriorityPrefixLength = 3; @@ -69,10 +72,17 @@ void makeTimeString(std::vector &buffer) localtime_r(&t, &tm); #endif +#ifndef __APPLE__ + std::format_to_n( + buffer.data(), buffer.size(), "{:04}-{:02}-{:02}T{:02}:{:02}:{:02}", tm.tm_year + yearOffset, + tm.tm_mon + monthOffset, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec + ); +#else snprintf( buffer.data(), buffer.size(), "%04i-%02i-%02iT%02i:%02i:%02i", tm.tm_year + yearOffset, tm.tm_mon + monthOffset, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec ); +#endif } std::vector makeMessage(const char *filename, int lineNumber, const char *message, LogLevel priority) @@ -100,14 +110,25 @@ std::vector makeMessage(const char *filename, int lineNumber, const char * bufferSize += filenameLength + lineNumberLength; std::vector buffer(bufferSize); +#ifndef __APPLE__ + std::format_to_n( + buffer.data(), bufferSize, "[{}] {}: {}\n\t{}:{}", timeBuffer.data(), g_priority[currentPriority], message, + filename, lineNumber + ); +#else snprintf( buffer.data(), bufferSize, "[%s] %s: %s\n\t%s:%d", timeBuffer.data(), g_priority[currentPriority], message, filename, lineNumber ); +#endif return buffer; } else { std::vector buffer(bufferSize); +#ifndef __APPLE__ + std::format_to_n(buffer.data(), bufferSize, "[{}] {}: {}", timeBuffer.data(), g_priority[currentPriority], message); +#else snprintf(buffer.data(), bufferSize, "[%s] %s: %s", timeBuffer.data(), g_priority[currentPriority], message); +#endif return buffer; } }