chore(log): add SLOG_FLAG_* flags

This commit is contained in:
VDm 2024-02-20 00:14:49 +04:00
parent efe062ca6b
commit b195319ff6
2 changed files with 12 additions and 4 deletions

View file

@ -305,7 +305,7 @@ static bool OpenLogFile(const char* filename, FILE** file, uint32_t flags) {
char newfilename[STORM_MAX_PATH]; char newfilename[STORM_MAX_PATH];
PrependDefaultDir(newfilename, STORM_MAX_PATH, filename); PrependDefaultDir(newfilename, STORM_MAX_PATH, filename);
CreateFileDirectory(newfilename); CreateFileDirectory(newfilename);
*file = fopen(newfilename, (flags & 2) ? "a+" : "w+"); *file = fopen(newfilename, (flags & SLOG_FLAG_APPEND) ? "a" : "w");
return (*file != nullptr); return (*file != nullptr);
} }
return false; return false;
@ -438,12 +438,12 @@ int SLogCreate(const char* filename, uint32_t flags, HSLOG* log) {
*log = 0; *log = 0;
if (flags & 2) { if (flags & SLOG_FLAG_NO_FILE) {
filename = ""; 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<HSLOG>(reinterpret_cast<size_t>(s_sequence) + 1); s_sequence = reinterpret_cast<HSLOG>(reinterpret_cast<size_t>(s_sequence) + 1);
*log = s_sequence; *log = s_sequence;
LOG* result = LockLog(s_sequence, &lockedhandle, true); LOG* result = LockLog(s_sequence, &lockedhandle, true);

View file

@ -3,11 +3,19 @@
#include <cstdarg> #include <cstdarg>
#include <cstdint>
#include "storm/Common.hpp" #include "storm/Common.hpp"
#include "storm/String.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(HSLOG);
DECLARE_STRICT_HANDLE(HLOCKEDLOG); DECLARE_STRICT_HANDLE(HLOCKEDLOG);