From ec0466ed73669fd8f87c3e97da1d1beb2b4f505c Mon Sep 17 00:00:00 2001 From: Hannah von Reth Date: Thu, 10 Sep 2020 12:46:48 +0200 Subject: [PATCH] Allow to add and remove log rules --- src/libsync/logger.cpp | 16 +++++++++++++--- src/libsync/logger.h | 9 +++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/libsync/logger.cpp b/src/libsync/logger.cpp index 25dbe00a3..8eb4908ad 100644 --- a/src/libsync/logger.cpp +++ b/src/libsync/logger.cpp @@ -224,14 +224,18 @@ void Logger::setLogFlush(bool flush) void Logger::setLogDebug(bool debug) { - QLoggingCategory::setFilterRules(debug ? QStringLiteral("nextcloud.*.debug=true") : QString()); + const QSet rules = {debug ? QStringLiteral("nextcloud.*.debug=true") : QString()}; + if (debug) { + addLogRule(rules); + } else { + removeLogRule(rules); + } _logDebug = debug; } QString Logger::temporaryFolderLogDirPath() const { - QString dirName = APPLICATION_SHORTNAME + QString("-logdir"); - return QDir::temp().filePath(dirName); + return QDir::temp().filePath(QStringLiteral(APPLICATION_SHORTNAME "-logdir")); } void Logger::setupTemporaryFolderLogDir() @@ -257,6 +261,12 @@ void Logger::disableTemporaryFolderLogDir() _temporaryFolderLogDir = false; } +void Logger::setLogRules(const QSet &rules) +{ + _logRules = rules; + QLoggingCategory::setFilterRules(rules.toList().join(QLatin1Char('\n'))); +} + static bool compressLog(const QString &originalName, const QString &targetName) { #ifdef ZLIB_FOUND diff --git a/src/libsync/logger.h b/src/libsync/logger.h index 4963e40fc..2796409a9 100644 --- a/src/libsync/logger.h +++ b/src/libsync/logger.h @@ -87,6 +87,14 @@ public: /** For switching off via logwindow */ void disableTemporaryFolderLogDir(); + void addLogRule(const QSet &rules) { + setLogRules(_logRules + rules); + } + void removeLogRule(const QSet &rules) { + setLogRules(_logRules - rules); + } + void setLogRules(const QSet &rules); + signals: void logWindowLog(const QString &); @@ -110,6 +118,7 @@ private: mutable QMutex _mutex; QString _logDirectory; bool _temporaryFolderLogDir = false; + QSet _logRules; }; } // namespace OCC -- 2.30.2