aboutsummaryrefslogtreecommitdiff
path: root/Logger/cyclelogfile.cpp
diff options
context:
space:
mode:
authorDark1-dev <shansarkar272@gmail.com>2023-03-01 21:33:55 +0600
committerGitHub <noreply@github.com>2023-03-01 21:33:55 +0600
commit3c7253d6cdc23aac36208fa87dc6571c7cb7c5ff (patch)
tree8b5f9425bbfc4fdd5a29155aec38893b77481359 /Logger/cyclelogfile.cpp
parentde57bc38217c09a0ae4a143f631896652368ecc3 (diff)
downloadMasterserver-Qt5-3c7253d6cdc23aac36208fa87dc6571c7cb7c5ff.tar.gz
Masterserver-Qt5-3c7253d6cdc23aac36208fa87dc6571c7cb7c5ff.zip
Add files via upload
Diffstat (limited to 'Logger/cyclelogfile.cpp')
-rw-r--r--Logger/cyclelogfile.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/Logger/cyclelogfile.cpp b/Logger/cyclelogfile.cpp
new file mode 100644
index 0000000..cb0266e
--- /dev/null
+++ b/Logger/cyclelogfile.cpp
@@ -0,0 +1,48 @@
+#include "logger.h"
+
+// if "now" matches the previous logfile name, no cycling needed. otherwise, determine new logfile name.
+bool Logger::cycleLogFile()
+{
+ // calculate the expected log filename
+ QString newFilename = _logLabel;
+
+ // get date to see if we need to cycle
+ QDate date(QDate::currentDate());
+
+ // when is it necessary to cycle?
+ switch ( _cyclePeriod )
+ {
+ case 1: // yearly
+ newFilename += date.toString("-yyyy");
+ break;
+ case 2: // monthly
+ newFilename += date.toString("-yyyy-MM");
+ break;
+ case 3: // weekly
+ newFilename += date.toString("-yyyy") + "-week" + QString("%1").arg(date.weekNumber(), 2, 10, QChar('0'));
+ break;
+ case 4: // daily
+ newFilename += date.toString("-yyyy-MM-dd");
+ break;
+ default:; // 0 = never
+ }
+
+ // add log file extension
+ newFilename += ".log";
+
+ // if current and new filename are not the same, cycle log file
+ if (_logFileName != newFilename)
+ {
+ // cycle log file
+ _logFileName = newFilename;
+
+ // close the existing/opened log file
+ closeLogFile();
+
+ // open the new log file (pass possible error to caller)
+ return openLogFile();
+ }
+
+ // else: no cycling necessary
+ return true;
+}