diff options
| author | Dark1-dev <shansarkar272@gmail.com> | 2023-03-01 21:33:55 +0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-01 21:33:55 +0600 |
| commit | 3c7253d6cdc23aac36208fa87dc6571c7cb7c5ff (patch) | |
| tree | 8b5f9425bbfc4fdd5a29155aec38893b77481359 /Logger/cyclelogfile.cpp | |
| parent | de57bc38217c09a0ae4a143f631896652368ecc3 (diff) | |
| download | Masterserver-Qt5-3c7253d6cdc23aac36208fa87dc6571c7cb7c5ff.tar.gz Masterserver-Qt5-3c7253d6cdc23aac36208fa87dc6571c7cb7c5ff.zip | |
Add files via upload
Diffstat (limited to 'Logger/cyclelogfile.cpp')
| -rw-r--r-- | Logger/cyclelogfile.cpp | 48 |
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; +} |
