aboutsummaryrefslogtreecommitdiff
path: root/src/Logger/initlog.cpp
diff options
context:
space:
mode:
authorDark1-dev <shansarkar272@gmail.com>2023-03-01 21:32:53 +0600
committerGitHub <noreply@github.com>2023-03-01 21:32:53 +0600
commitde57bc38217c09a0ae4a143f631896652368ecc3 (patch)
tree635e3f429a5a6e00744b6817533615e41c6db5e2 /src/Logger/initlog.cpp
parent60a301a93b6057bb2c54ac04a7c38c38389037b3 (diff)
downloadMasterserver-Qt5-de57bc38217c09a0ae4a143f631896652368ecc3.tar.gz
Masterserver-Qt5-de57bc38217c09a0ae4a143f631896652368ecc3.zip
Add files via upload
Diffstat (limited to 'src/Logger/initlog.cpp')
-rw-r--r--src/Logger/initlog.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/Logger/initlog.cpp b/src/Logger/initlog.cpp
new file mode 100644
index 0000000..d852c86
--- /dev/null
+++ b/src/Logger/initlog.cpp
@@ -0,0 +1,37 @@
+#include "logger.h"
+
+bool Logger::init(const QString &applicationPath,
+ const SettingStructure &settings)
+{
+ // test if log directory exists
+ _logPath = applicationPath + "/" + _logDirectory;
+ QDir logDir(_logPath);
+ if ( ! logDir.mkpath(".") )
+ {
+ QTextStream(stdout) << "Failed to access log directory at " + _logPath << endl
+ << "Please create the director and/or apply relevant permissions." << endl;
+ return false;
+ }
+
+ // log cycling -- determine log cycling setting
+ const QHash<QString, int> logCycling = {
+ {"never", 0},
+ {"yearly", 1},
+ {"monthly", 2},
+ {"weekly", 3},
+ {"daily", 4}
+ };
+
+ // load log-specific settings
+ _cyclePeriod = logCycling.value( settings.LoggingSettings.cycle );
+ _suppressLog = settings.LoggingSettings.suppressLog;
+ _suppressDisplay = settings.LoggingSettings.suppressDisplay;
+
+ // cycling initialisation ("never" is also a cycle)
+ if ( ! cycleLogFile() )
+ {
+ QTextStream(stdout) << "Failed to access log file " + _logFileName + " at " + _logPath << endl;
+ return false;
+ }
+ return true;
+}