From b195319ff65d00509d8550b03795045e67c30f25 Mon Sep 17 00:00:00 2001 From: VDm Date: Tue, 20 Feb 2024 00:14:49 +0400 Subject: [PATCH] chore(log): add SLOG_FLAG_* flags --- storm/Log.cpp | 8 ++++---- storm/Log.hpp | 8 ++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/storm/Log.cpp b/storm/Log.cpp index 6ab023a..3636243 100644 --- a/storm/Log.cpp +++ b/storm/Log.cpp @@ -305,7 +305,7 @@ static bool OpenLogFile(const char* filename, FILE** file, uint32_t flags) { char newfilename[STORM_MAX_PATH]; PrependDefaultDir(newfilename, STORM_MAX_PATH, filename); CreateFileDirectory(newfilename); - *file = fopen(newfilename, (flags & 2) ? "a+" : "w+"); + *file = fopen(newfilename, (flags & SLOG_FLAG_APPEND) ? "a" : "w"); return (*file != nullptr); } return false; @@ -438,12 +438,12 @@ int SLogCreate(const char* filename, uint32_t flags, HSLOG* log) { *log = 0; - if (flags & 2) { + if (flags & SLOG_FLAG_NO_FILE) { filename = ""; - flags &= ~1u; + flags &= ~SLOG_FLAG_OPEN_FILE; } - if ((flags & 1) == 0 || OpenLogFile(filename, &file, flags)) { + if ((flags & SLOG_FLAG_OPEN_FILE) == 0 || OpenLogFile(filename, &file, flags)) { s_sequence = reinterpret_cast(reinterpret_cast(s_sequence) + 1); *log = s_sequence; LOG* result = LockLog(s_sequence, &lockedhandle, true); diff --git a/storm/Log.hpp b/storm/Log.hpp index fa6f66a..0935d0c 100644 --- a/storm/Log.hpp +++ b/storm/Log.hpp @@ -3,11 +3,19 @@ #include +#include #include "storm/Common.hpp" #include "storm/String.hpp" +enum : uint32_t { + SLOG_FLAG_DEFAULT = 0, // Create or open log file with first SLogWrite() call + SLOG_FLAG_OPEN_FILE = 1, // Create or open log file with SLogCreate() + SLOG_FLAG_NO_FILE = 2, // Don't use log file (use OutputDebugString or console only) + SLOG_FLAG_APPEND = 4 // Don't truncate existing log file +}; + DECLARE_STRICT_HANDLE(HSLOG); DECLARE_STRICT_HANDLE(HLOCKEDLOG);