From: Christian Kamm Date: Tue, 30 Jul 2019 12:04:34 +0000 (+0200) Subject: LogDir: Compress last logfile on restart X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~222^2^2~126^2~12 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=039d885b769abf92ae5e8d91d67ddbd9030bcac5;p=nextcloud-desktop.git LogDir: Compress last logfile on restart For #7353 --- diff --git a/src/libsync/logger.cpp b/src/libsync/logger.cpp index 35a997e27..4bb17ac71 100644 --- a/src/libsync/logger.cpp +++ b/src/libsync/logger.cpp @@ -269,7 +269,7 @@ void Logger::enterNextLogFile() // Expire old log files and deal with conflicts QStringList files = dir.entryList(QStringList("*owncloud.log.*"), - QDir::Files); + QDir::Files, QDir::Name); QRegExp rx(R"(.*owncloud\.log\.(\d+).*)"); int maxNumber = -1; foreach (const QString &s, files) { @@ -288,10 +288,15 @@ void Logger::enterNextLogFile() auto previousLog = _logFile.fileName(); setLogFile(dir.filePath(newLogName)); - if (!previousLog.isEmpty()) { - QString compressedName = previousLog + ".gz"; - if (compressLog(previousLog, compressedName)) { - QFile::remove(previousLog); + // Compress the previous log file. On a restart this can be the most recent + // log file. + auto logToCompress = previousLog; + if (logToCompress.isEmpty() && files.size() > 0 && !files.last().endsWith(".gz")) + logToCompress = dir.absoluteFilePath(files.last()); + if (!logToCompress.isEmpty()) { + QString compressedName = logToCompress + ".gz"; + if (compressLog(logToCompress, compressedName)) { + QFile::remove(logToCompress); } else { QFile::remove(compressedName); }