From: Matthieu Gallien Date: Wed, 13 Nov 2024 10:54:36 +0000 (+0100) Subject: flush logs every 5 lines written X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~5^2~22^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=fac4cedd2b982c3d47001dcbfb68f9a9ab11aeaa;p=nextcloud-desktop.git flush logs every 5 lines written should help not loosing too much logs in case of a crash or similar not nominal stop of the client Signed-off-by: Matthieu Gallien --- diff --git a/src/libsync/logger.cpp b/src/libsync/logger.cpp index 5e885d7af..a9ffad0f3 100644 --- a/src/libsync/logger.cpp +++ b/src/libsync/logger.cpp @@ -37,6 +37,7 @@ namespace { constexpr int CrashLogSize = 20; constexpr auto MaxLogLinesCount = 50000; +constexpr auto MaxLogLinesBeforeFlush = 10; static bool compressLog(const QString &originalName, const QString &targetName) { @@ -145,8 +146,13 @@ void Logger::doLog(QtMsgType type, const QMessageLogContext &ctx, const QString if (_logstream) { (*_logstream) << msg << "\n"; - if (_doFileFlush) + ++_linesCounter; + if (_doFileFlush || + _linesCounter >= MaxLogLinesBeforeFlush || + type == QtMsgType::QtWarningMsg || type == QtMsgType::QtCriticalMsg || type == QtMsgType::QtFatalMsg) { _logstream->flush(); + _linesCounter = 0; + } } if (_permanentDeleteLogStream && ctx.category && strcmp(ctx.category, lcPermanentLog().categoryName()) == 0) { (*_permanentDeleteLogStream) << msg << "\n"; diff --git a/src/libsync/logger.h b/src/libsync/logger.h index 2d9dce319..b913678b4 100644 --- a/src/libsync/logger.h +++ b/src/libsync/logger.h @@ -110,6 +110,7 @@ private: QFile _logFile; bool _doFileFlush = false; + int _linesCounter = 0; int _logExpire = 0; bool _logDebug = false; QScopedPointer _logstream;