From 53ae146667866733095d03af319897f0b344a9a8 Mon Sep 17 00:00:00 2001 From: Jacob Schramm Date: Wed, 28 Oct 2020 23:19:24 +0100 Subject: [PATCH 1/3] Introducing RotateLog configuration option that allows disabling timestamps on the logfiles. --- .gitignore | 1 + Conf.cpp | 8 ++++++++ Conf.h | 2 ++ Log.cpp | 15 ++++++++++++--- Log.h | 2 +- MMDVM.ini | 1 + MMDVMHost.cpp | 4 ++-- RemoteCommand.cpp | 2 +- 8 files changed, 28 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 14ab1c8..4009b5a 100644 --- a/.gitignore +++ b/.gitignore @@ -15,5 +15,6 @@ RemoteCommand *.user *.VC.db .vs +.vscode *.ambe GitVersion.h diff --git a/Conf.cpp b/Conf.cpp index 7491717..890dde5 100644 --- a/Conf.cpp +++ b/Conf.cpp @@ -82,6 +82,7 @@ m_logDisplayLevel(0U), m_logFileLevel(0U), m_logFilePath(), m_logFileRoot(), +m_logRotateLogs(1U), m_cwIdEnabled(false), m_cwIdTime(10U), m_cwIdCallsign(), @@ -453,6 +454,8 @@ bool CConf::read() m_logFileLevel = (unsigned int)::atoi(value); else if (::strcmp(key, "DisplayLevel") == 0) m_logDisplayLevel = (unsigned int)::atoi(value); + else if (::strcmp(key, "RotateLogs") == 0) + m_logRotateLogs = (unsigned int)::atoi(value); } else if (section == SECTION_CWID) { if (::strcmp(key, "Enable") == 0) m_cwIdEnabled = ::atoi(value) == 1; @@ -1074,6 +1077,11 @@ std::string CConf::getLogFileRoot() const return m_logFileRoot; } +unsigned int CConf::getLogRotateLogs() const +{ + return m_logRotateLogs; +} + bool CConf::getCWIdEnabled() const { return m_cwIdEnabled; diff --git a/Conf.h b/Conf.h index 335d461..0ea44a9 100644 --- a/Conf.h +++ b/Conf.h @@ -54,6 +54,7 @@ public: unsigned int getLogFileLevel() const; std::string getLogFilePath() const; std::string getLogFileRoot() const; + unsigned int getLogRotateLogs() const; // The CW ID section bool getCWIdEnabled() const; @@ -337,6 +338,7 @@ private: unsigned int m_logFileLevel; std::string m_logFilePath; std::string m_logFileRoot; + unsigned int m_logRotateLogs; bool m_cwIdEnabled; unsigned int m_cwIdTime; diff --git a/Log.cpp b/Log.cpp index 1d5ad29..6e573a8 100644 --- a/Log.cpp +++ b/Log.cpp @@ -41,6 +41,8 @@ static bool m_daemon = false; static unsigned int m_displayLevel = 2U; +static unsigned int m_rotateLogs = 1U; + static struct tm m_tm; static char LEVELS[] = " DMIWEF"; @@ -66,10 +68,16 @@ static bool LogOpen() } char filename[200U]; + char timestamp[37U] = ""; + + if (m_rotateLogs) { + ::sprintf(timestamp, "-%04d-%02d-%02d", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday); + } + #if defined(_WIN32) || defined(_WIN64) - ::sprintf(filename, "%s\\%s-%04d-%02d-%02d.log", m_filePath.c_str(), m_fileRoot.c_str(), tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday); + ::sprintf(filename, "%s\\%s%s.log", m_filePath.c_str(), m_fileRoot.c_str(), timestamp); #else - ::sprintf(filename, "%s/%s-%04d-%02d-%02d.log", m_filePath.c_str(), m_fileRoot.c_str(), tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday); + ::sprintf(filename, "%s/%s%s.log", m_filePath.c_str(), m_fileRoot.c_str(), timestamp); #endif if ((m_fpLog = ::fopen(filename, "a+t")) != NULL) { @@ -86,12 +94,13 @@ static bool LogOpen() return status; } -bool LogInitialise(bool daemon, const std::string& filePath, const std::string& fileRoot, unsigned int fileLevel, unsigned int displayLevel) +bool LogInitialise(bool daemon, const std::string& filePath, const std::string& fileRoot, unsigned int fileLevel, unsigned int displayLevel, unsigned int rotateLogs) { m_filePath = filePath; m_fileRoot = fileRoot; m_fileLevel = fileLevel; m_displayLevel = displayLevel; + m_rotateLogs = rotateLogs; m_daemon = daemon; if (m_daemon) diff --git a/Log.h b/Log.h index 0d00653..0138a6c 100644 --- a/Log.h +++ b/Log.h @@ -30,7 +30,7 @@ extern void Log(unsigned int level, const char* fmt, ...); -extern bool LogInitialise(bool daemon, const std::string& filePath, const std::string& fileRoot, unsigned int fileLevel, unsigned int displayLevel); +extern bool LogInitialise(bool daemon, const std::string& filePath, const std::string& fileRoot, unsigned int fileLevel, unsigned int displayLevel, unsigned int rotateLogs); extern void LogFinalise(); #endif diff --git a/MMDVM.ini b/MMDVM.ini index ccc561b..2ad20f6 100644 --- a/MMDVM.ini +++ b/MMDVM.ini @@ -26,6 +26,7 @@ DisplayLevel=1 FileLevel=1 FilePath=. FileRoot=MMDVM +RotateLogs=1 [CW Id] Enable=1 diff --git a/MMDVMHost.cpp b/MMDVMHost.cpp index f174b83..512af87 100644 --- a/MMDVMHost.cpp +++ b/MMDVMHost.cpp @@ -242,9 +242,9 @@ int CMMDVMHost::run() #endif #if !defined(_WIN32) && !defined(_WIN64) - ret = ::LogInitialise(m_daemon, m_conf.getLogFilePath(), m_conf.getLogFileRoot(), m_conf.getLogFileLevel(), m_conf.getLogDisplayLevel()); + ret = ::LogInitialise(m_daemon, m_conf.getLogFilePath(), m_conf.getLogFileRoot(), m_conf.getLogFileLevel(), m_conf.getLogDisplayLevel(), m_conf.getLogRotateLogs()); #else - ret = ::LogInitialise(false, m_conf.getLogFilePath(), m_conf.getLogFileRoot(), m_conf.getLogFileLevel(), m_conf.getLogDisplayLevel()); + ret = ::LogInitialise(false, m_conf.getLogFilePath(), m_conf.getLogFileRoot(), m_conf.getLogFileLevel(), m_conf.getLogDisplayLevel(), m_conf.getLogRotateLogs()); #endif if (!ret) { ::fprintf(stderr, "MMDVMHost: unable to open the log file\n"); diff --git a/RemoteCommand.cpp b/RemoteCommand.cpp index fd96e46..33bd069 100644 --- a/RemoteCommand.cpp +++ b/RemoteCommand.cpp @@ -51,7 +51,7 @@ int main(int argc, char** argv) CRemoteCommand::CRemoteCommand(unsigned int port) : m_port(port) { - ::LogInitialise(false, ".", "RemoteCommand", 2U, 2U); + ::LogInitialise(false, ".", "RemoteCommand", 2U, 2U, 1U); } CRemoteCommand::~CRemoteCommand() From 7a5bbda2487947b15ecadacef9dbe7aa60da4ef2 Mon Sep 17 00:00:00 2001 From: Jacob Schramm Date: Thu, 29 Oct 2020 22:42:25 +0100 Subject: [PATCH 2/3] Changing RotateLogs to TimestampLogs --- Conf.cpp | 10 +++++----- Conf.h | 4 ++-- Log.cpp | 8 ++++---- Log.h | 2 +- MMDVM.ini | 2 +- MMDVMHost.cpp | 4 ++-- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Conf.cpp b/Conf.cpp index 890dde5..a056182 100644 --- a/Conf.cpp +++ b/Conf.cpp @@ -82,7 +82,7 @@ m_logDisplayLevel(0U), m_logFileLevel(0U), m_logFilePath(), m_logFileRoot(), -m_logRotateLogs(1U), +m_logTimestampLogs(1U), m_cwIdEnabled(false), m_cwIdTime(10U), m_cwIdCallsign(), @@ -454,8 +454,8 @@ bool CConf::read() m_logFileLevel = (unsigned int)::atoi(value); else if (::strcmp(key, "DisplayLevel") == 0) m_logDisplayLevel = (unsigned int)::atoi(value); - else if (::strcmp(key, "RotateLogs") == 0) - m_logRotateLogs = (unsigned int)::atoi(value); + else if (::strcmp(key, "TimestampLogs") == 0) + m_logTimestampLogs = (unsigned int)::atoi(value); } else if (section == SECTION_CWID) { if (::strcmp(key, "Enable") == 0) m_cwIdEnabled = ::atoi(value) == 1; @@ -1077,9 +1077,9 @@ std::string CConf::getLogFileRoot() const return m_logFileRoot; } -unsigned int CConf::getLogRotateLogs() const +unsigned int CConf::getLogTimestampLogs() const { - return m_logRotateLogs; + return m_logTimestampLogs; } bool CConf::getCWIdEnabled() const diff --git a/Conf.h b/Conf.h index 0ea44a9..c7b611a 100644 --- a/Conf.h +++ b/Conf.h @@ -54,7 +54,7 @@ public: unsigned int getLogFileLevel() const; std::string getLogFilePath() const; std::string getLogFileRoot() const; - unsigned int getLogRotateLogs() const; + unsigned int getLogTimestampLogs() const; // The CW ID section bool getCWIdEnabled() const; @@ -338,7 +338,7 @@ private: unsigned int m_logFileLevel; std::string m_logFilePath; std::string m_logFileRoot; - unsigned int m_logRotateLogs; + unsigned int m_logTimestampLogs; bool m_cwIdEnabled; unsigned int m_cwIdTime; diff --git a/Log.cpp b/Log.cpp index 6e573a8..c0a0162 100644 --- a/Log.cpp +++ b/Log.cpp @@ -41,7 +41,7 @@ static bool m_daemon = false; static unsigned int m_displayLevel = 2U; -static unsigned int m_rotateLogs = 1U; +static unsigned int m_timestampLogs = 1U; static struct tm m_tm; @@ -70,7 +70,7 @@ static bool LogOpen() char filename[200U]; char timestamp[37U] = ""; - if (m_rotateLogs) { + if (m_timestampLogs) { ::sprintf(timestamp, "-%04d-%02d-%02d", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday); } @@ -94,13 +94,13 @@ static bool LogOpen() return status; } -bool LogInitialise(bool daemon, const std::string& filePath, const std::string& fileRoot, unsigned int fileLevel, unsigned int displayLevel, unsigned int rotateLogs) +bool LogInitialise(bool daemon, const std::string& filePath, const std::string& fileRoot, unsigned int fileLevel, unsigned int displayLevel, unsigned int timestampLogs) { m_filePath = filePath; m_fileRoot = fileRoot; m_fileLevel = fileLevel; m_displayLevel = displayLevel; - m_rotateLogs = rotateLogs; + m_timestampLogs = timestampLogs; m_daemon = daemon; if (m_daemon) diff --git a/Log.h b/Log.h index 0138a6c..f287f35 100644 --- a/Log.h +++ b/Log.h @@ -30,7 +30,7 @@ extern void Log(unsigned int level, const char* fmt, ...); -extern bool LogInitialise(bool daemon, const std::string& filePath, const std::string& fileRoot, unsigned int fileLevel, unsigned int displayLevel, unsigned int rotateLogs); +extern bool LogInitialise(bool daemon, const std::string& filePath, const std::string& fileRoot, unsigned int fileLevel, unsigned int displayLevel, unsigned int timestampLogs); extern void LogFinalise(); #endif diff --git a/MMDVM.ini b/MMDVM.ini index 2ad20f6..239cb94 100644 --- a/MMDVM.ini +++ b/MMDVM.ini @@ -26,7 +26,7 @@ DisplayLevel=1 FileLevel=1 FilePath=. FileRoot=MMDVM -RotateLogs=1 +TimestampLogs=1 [CW Id] Enable=1 diff --git a/MMDVMHost.cpp b/MMDVMHost.cpp index 512af87..5003cf9 100644 --- a/MMDVMHost.cpp +++ b/MMDVMHost.cpp @@ -242,9 +242,9 @@ int CMMDVMHost::run() #endif #if !defined(_WIN32) && !defined(_WIN64) - ret = ::LogInitialise(m_daemon, m_conf.getLogFilePath(), m_conf.getLogFileRoot(), m_conf.getLogFileLevel(), m_conf.getLogDisplayLevel(), m_conf.getLogRotateLogs()); + ret = ::LogInitialise(m_daemon, m_conf.getLogFilePath(), m_conf.getLogFileRoot(), m_conf.getLogFileLevel(), m_conf.getLogDisplayLevel(), m_conf.getLogTimestampLogs()); #else - ret = ::LogInitialise(false, m_conf.getLogFilePath(), m_conf.getLogFileRoot(), m_conf.getLogFileLevel(), m_conf.getLogDisplayLevel(), m_conf.getLogRotateLogs()); + ret = ::LogInitialise(false, m_conf.getLogFilePath(), m_conf.getLogFileRoot(), m_conf.getLogFileLevel(), m_conf.getLogDisplayLevel(), m_conf.getLogTimestampLogs()); #endif if (!ret) { ::fprintf(stderr, "MMDVMHost: unable to open the log file\n"); From 61afb194c5015fbe3e3e95851690e3788179726c Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Fri, 30 Oct 2020 13:34:13 +0000 Subject: [PATCH 3/3] Revert "Merge pull request #648 from xfxian/logrotate" This reverts commit 993239484087e69710298ad67ed32baa5b31ba40, reversing changes made to cfc313e5b901a26c2dc7d186beb4123e8c47fd11. --- .gitignore | 1 - Conf.cpp | 8 -------- Conf.h | 2 -- Log.cpp | 15 +++------------ Log.h | 2 +- MMDVM.ini | 1 - MMDVMHost.cpp | 4 ++-- RemoteCommand.cpp | 2 +- 8 files changed, 7 insertions(+), 28 deletions(-) diff --git a/.gitignore b/.gitignore index 4009b5a..14ab1c8 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,5 @@ RemoteCommand *.user *.VC.db .vs -.vscode *.ambe GitVersion.h diff --git a/Conf.cpp b/Conf.cpp index a056182..7491717 100644 --- a/Conf.cpp +++ b/Conf.cpp @@ -82,7 +82,6 @@ m_logDisplayLevel(0U), m_logFileLevel(0U), m_logFilePath(), m_logFileRoot(), -m_logTimestampLogs(1U), m_cwIdEnabled(false), m_cwIdTime(10U), m_cwIdCallsign(), @@ -454,8 +453,6 @@ bool CConf::read() m_logFileLevel = (unsigned int)::atoi(value); else if (::strcmp(key, "DisplayLevel") == 0) m_logDisplayLevel = (unsigned int)::atoi(value); - else if (::strcmp(key, "TimestampLogs") == 0) - m_logTimestampLogs = (unsigned int)::atoi(value); } else if (section == SECTION_CWID) { if (::strcmp(key, "Enable") == 0) m_cwIdEnabled = ::atoi(value) == 1; @@ -1077,11 +1074,6 @@ std::string CConf::getLogFileRoot() const return m_logFileRoot; } -unsigned int CConf::getLogTimestampLogs() const -{ - return m_logTimestampLogs; -} - bool CConf::getCWIdEnabled() const { return m_cwIdEnabled; diff --git a/Conf.h b/Conf.h index c7b611a..335d461 100644 --- a/Conf.h +++ b/Conf.h @@ -54,7 +54,6 @@ public: unsigned int getLogFileLevel() const; std::string getLogFilePath() const; std::string getLogFileRoot() const; - unsigned int getLogTimestampLogs() const; // The CW ID section bool getCWIdEnabled() const; @@ -338,7 +337,6 @@ private: unsigned int m_logFileLevel; std::string m_logFilePath; std::string m_logFileRoot; - unsigned int m_logTimestampLogs; bool m_cwIdEnabled; unsigned int m_cwIdTime; diff --git a/Log.cpp b/Log.cpp index c0a0162..1d5ad29 100644 --- a/Log.cpp +++ b/Log.cpp @@ -41,8 +41,6 @@ static bool m_daemon = false; static unsigned int m_displayLevel = 2U; -static unsigned int m_timestampLogs = 1U; - static struct tm m_tm; static char LEVELS[] = " DMIWEF"; @@ -68,16 +66,10 @@ static bool LogOpen() } char filename[200U]; - char timestamp[37U] = ""; - - if (m_timestampLogs) { - ::sprintf(timestamp, "-%04d-%02d-%02d", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday); - } - #if defined(_WIN32) || defined(_WIN64) - ::sprintf(filename, "%s\\%s%s.log", m_filePath.c_str(), m_fileRoot.c_str(), timestamp); + ::sprintf(filename, "%s\\%s-%04d-%02d-%02d.log", m_filePath.c_str(), m_fileRoot.c_str(), tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday); #else - ::sprintf(filename, "%s/%s%s.log", m_filePath.c_str(), m_fileRoot.c_str(), timestamp); + ::sprintf(filename, "%s/%s-%04d-%02d-%02d.log", m_filePath.c_str(), m_fileRoot.c_str(), tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday); #endif if ((m_fpLog = ::fopen(filename, "a+t")) != NULL) { @@ -94,13 +86,12 @@ static bool LogOpen() return status; } -bool LogInitialise(bool daemon, const std::string& filePath, const std::string& fileRoot, unsigned int fileLevel, unsigned int displayLevel, unsigned int timestampLogs) +bool LogInitialise(bool daemon, const std::string& filePath, const std::string& fileRoot, unsigned int fileLevel, unsigned int displayLevel) { m_filePath = filePath; m_fileRoot = fileRoot; m_fileLevel = fileLevel; m_displayLevel = displayLevel; - m_timestampLogs = timestampLogs; m_daemon = daemon; if (m_daemon) diff --git a/Log.h b/Log.h index f287f35..0d00653 100644 --- a/Log.h +++ b/Log.h @@ -30,7 +30,7 @@ extern void Log(unsigned int level, const char* fmt, ...); -extern bool LogInitialise(bool daemon, const std::string& filePath, const std::string& fileRoot, unsigned int fileLevel, unsigned int displayLevel, unsigned int timestampLogs); +extern bool LogInitialise(bool daemon, const std::string& filePath, const std::string& fileRoot, unsigned int fileLevel, unsigned int displayLevel); extern void LogFinalise(); #endif diff --git a/MMDVM.ini b/MMDVM.ini index 239cb94..ccc561b 100644 --- a/MMDVM.ini +++ b/MMDVM.ini @@ -26,7 +26,6 @@ DisplayLevel=1 FileLevel=1 FilePath=. FileRoot=MMDVM -TimestampLogs=1 [CW Id] Enable=1 diff --git a/MMDVMHost.cpp b/MMDVMHost.cpp index 5003cf9..f174b83 100644 --- a/MMDVMHost.cpp +++ b/MMDVMHost.cpp @@ -242,9 +242,9 @@ int CMMDVMHost::run() #endif #if !defined(_WIN32) && !defined(_WIN64) - ret = ::LogInitialise(m_daemon, m_conf.getLogFilePath(), m_conf.getLogFileRoot(), m_conf.getLogFileLevel(), m_conf.getLogDisplayLevel(), m_conf.getLogTimestampLogs()); + ret = ::LogInitialise(m_daemon, m_conf.getLogFilePath(), m_conf.getLogFileRoot(), m_conf.getLogFileLevel(), m_conf.getLogDisplayLevel()); #else - ret = ::LogInitialise(false, m_conf.getLogFilePath(), m_conf.getLogFileRoot(), m_conf.getLogFileLevel(), m_conf.getLogDisplayLevel(), m_conf.getLogTimestampLogs()); + ret = ::LogInitialise(false, m_conf.getLogFilePath(), m_conf.getLogFileRoot(), m_conf.getLogFileLevel(), m_conf.getLogDisplayLevel()); #endif if (!ret) { ::fprintf(stderr, "MMDVMHost: unable to open the log file\n"); diff --git a/RemoteCommand.cpp b/RemoteCommand.cpp index 33bd069..fd96e46 100644 --- a/RemoteCommand.cpp +++ b/RemoteCommand.cpp @@ -51,7 +51,7 @@ int main(int argc, char** argv) CRemoteCommand::CRemoteCommand(unsigned int port) : m_port(port) { - ::LogInitialise(false, ".", "RemoteCommand", 2U, 2U, 1U); + ::LogInitialise(false, ".", "RemoteCommand", 2U, 2U); } CRemoteCommand::~CRemoteCommand()