mirror of
https://github.com/J-D-K/JKSV.git
synced 2026-09-09 02:55:23 -05:00
Add date/time to log entries.
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
|
||||
#include <array>
|
||||
#include <cstdarg>
|
||||
#include <ctime>
|
||||
#include <fstream>
|
||||
#include <mutex>
|
||||
#include <switch.h>
|
||||
@@ -16,6 +17,8 @@ namespace
|
||||
/// @brief This is the buffer size for log strings.
|
||||
constexpr size_t VA_BUFFER_SIZE = 0x1000;
|
||||
|
||||
constexpr size_t TIME_BUFFER = 0x80;
|
||||
|
||||
constexpr int64_t SIZE_LOG_LIMIT = 0x10000;
|
||||
} // namespace
|
||||
|
||||
@@ -31,12 +34,17 @@ void logger::log(const char *format, ...) noexcept
|
||||
{
|
||||
static std::mutex logLock{};
|
||||
|
||||
std::array<char, VA_BUFFER_SIZE> vaBuffer = {};
|
||||
std::array<char, VA_BUFFER_SIZE> vaBuffer{};
|
||||
std::va_list vaList{};
|
||||
va_start(vaList, format);
|
||||
vsnprintf(vaBuffer.data(), VA_BUFFER_SIZE, format, vaList);
|
||||
va_end(vaList);
|
||||
|
||||
std::array<char, TIME_BUFFER> timeDateBuffer{};
|
||||
std::time_t currentTime = std::time(nullptr);
|
||||
std::tm localTime = *std::localtime(¤tTime);
|
||||
std::strftime(timeDateBuffer.data(), TIME_BUFFER, "[%c] ", &localTime);
|
||||
|
||||
std::lock_guard<std::mutex> logGuard(logLock);
|
||||
const fslib::Path logPath{PATH_JKSV_LOG};
|
||||
fslib::File logFile(logPath, FsOpenMode_Append);
|
||||
@@ -47,6 +55,6 @@ void logger::log(const char *format, ...) noexcept
|
||||
}
|
||||
|
||||
if (!logFile.is_open()) { return; }
|
||||
logFile << vaBuffer.data() << "\n";
|
||||
logFile << timeDateBuffer.data() << vaBuffer.data() << "\n";
|
||||
logFile.flush();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user