diff options
author | seth <getchoo@tuta.io> | 2023-06-14 15:38:47 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-14 15:38:47 -0400 |
commit | 3f1548ae0e4b021a9e9a6307b0566ad3f819ecc6 (patch) | |
tree | d5da230669829a9e2de7365100fab0c713da3c89 /launcher/Application.cpp | |
parent | a4502f44c291fad2174e84bf883cdb754aa08e28 (diff) | |
parent | d50bd096a49362346ff51669d0ab23261e7391b0 (diff) | |
download | PrismLauncher-3f1548ae0e4b021a9e9a6307b0566ad3f819ecc6.tar.gz PrismLauncher-3f1548ae0e4b021a9e9a6307b0566ad3f819ecc6.tar.bz2 PrismLauncher-3f1548ae0e4b021a9e9a6307b0566ad3f819ecc6.zip |
Merge pull request #1099 from Trial97/logdir
store logs in seperate directory
Diffstat (limited to 'launcher/Application.cpp')
-rw-r--r-- | launcher/Application.cpp | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/launcher/Application.cpp b/launcher/Application.cpp index 1659eb44..724e6e44 100644 --- a/launcher/Application.cpp +++ b/launcher/Application.cpp @@ -376,33 +376,33 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv) // init the logger { - static const QString logBase = BuildConfig.LAUNCHER_NAME + "-%0.log"; - auto moveFile = [](const QString &oldName, const QString &newName) - { + static const QString baseLogFile = BuildConfig.LAUNCHER_NAME + "-%0.log"; + static const QString logBase = FS::PathCombine("logs", baseLogFile); + auto moveFile = [](const QString& oldName, const QString& newName) { QFile::remove(newName); QFile::copy(oldName, newName); QFile::remove(oldName); }; + if (FS::ensureFolderPathExists("logs")) { // if this did not fail + for (auto i = 0; i <= 4; i++) + if (auto oldName = baseLogFile.arg(i); + QFile::exists(oldName)) // do not pointlessly delete new files if the old ones are not there + moveFile(oldName, logBase.arg(i)); + } - moveFile(logBase.arg(3), logBase.arg(4)); - moveFile(logBase.arg(2), logBase.arg(3)); - moveFile(logBase.arg(1), logBase.arg(2)); - moveFile(logBase.arg(0), logBase.arg(1)); + for (auto i = 4; i > 0; i--) + moveFile(logBase.arg(i - 1), logBase.arg(i)); logFile = std::unique_ptr<QFile>(new QFile(logBase.arg(0))); - if(!logFile->open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate)) - { - showFatalErrorMessage( - "The launcher data folder is not writable!", - QString( - "The launcher couldn't create a log file - the data folder is not writable.\n" - "\n" - "Make sure you have write permissions to the data folder.\n" - "(%1)\n" - "\n" - "The launcher cannot continue until you fix this problem." - ).arg(dataPath) - ); + if (!logFile->open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate)) { + showFatalErrorMessage("The launcher data folder is not writable!", + QString("The launcher couldn't create a log file - the data folder is not writable.\n" + "\n" + "Make sure you have write permissions to the data folder.\n" + "(%1)\n" + "\n" + "The launcher cannot continue until you fix this problem.") + .arg(dataPath)); return; } qInstallMessageHandler(appDebugOutput); @@ -1699,6 +1699,7 @@ bool Application::handleDataMigration(const QString& currentData, matcher->add(std::make_shared<SimplePrefixMatcher>(configFile)); matcher->add(std::make_shared<SimplePrefixMatcher>( BuildConfig.LAUNCHER_CONFIGFILE)); // it's possible that we already used that directory before + matcher->add(std::make_shared<SimplePrefixMatcher>("logs/")); matcher->add(std::make_shared<SimplePrefixMatcher>("accounts.json")); matcher->add(std::make_shared<SimplePrefixMatcher>("accounts/")); matcher->add(std::make_shared<SimplePrefixMatcher>("assets/")); |