From 0616741288f425e5dc58e13eb5f099e4e8ce3a49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kai=20K=C3=B6hne?= Date: Tue, 23 Jan 2024 16:04:15 +0100 Subject: [PATCH] Be more verbose if QT_LOGGING_DEBUG is set Pick-to: 6.7 Fixes: QTBUG-121380 Change-Id: Ieb977ada03aa0128cbaeee796f42508fd6db4031 Reviewed-by: Jarek Kobus --- src/corelib/io/qloggingregistry.cpp | 38 ++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/src/corelib/io/qloggingregistry.cpp b/src/corelib/io/qloggingregistry.cpp index 8c9216ff62d..9ef5cbe376f 100644 --- a/src/corelib/io/qloggingregistry.cpp +++ b/src/corelib/io/qloggingregistry.cpp @@ -244,20 +244,29 @@ QLoggingRegistry::QLoggingRegistry() static bool qtLoggingDebug() { - static const bool debugEnv = qEnvironmentVariableIsSet("QT_LOGGING_DEBUG"); + static const bool debugEnv = [] { + bool debug = qEnvironmentVariableIsSet("QT_LOGGING_DEBUG"); + if (debug) + debugMsg("QT_LOGGING_DEBUG environment variable is set."); + return debug; + }(); return debugEnv; } static QList loadRulesFromFile(const QString &filePath) { + if (qtLoggingDebug()) { + debugMsg("Checking \"%s\" for rules", + QDir::toNativeSeparators(filePath).toUtf8().constData()); + } + QFile file(filePath); if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { - if (qtLoggingDebug()) - debugMsg("Loading \"%s\" ...", - QDir::toNativeSeparators(file.fileName()).toUtf8().constData()); QTextStream stream(&file); QLoggingSettingsParser parser; parser.setContent(stream); + if (qtLoggingDebug()) + debugMsg("Loaded %td rules", static_cast(parser.rules().size())); return parser.rules(); } return QList(); @@ -270,19 +279,30 @@ static QList loadRulesFromFile(const QString &filePath) */ void QLoggingRegistry::initializeRules() { + if (qtLoggingDebug()) { + debugMsg("Initializing the rules database ..."); + debugMsg("Checking %s environment variable", "QTLOGGING_CONF"); + } QList er, qr, cr; // get rules from environment const QByteArray rulesFilePath = qgetenv("QT_LOGGING_CONF"); if (!rulesFilePath.isEmpty()) er = loadRulesFromFile(QFile::decodeName(rulesFilePath)); + if (qtLoggingDebug()) + debugMsg("Checking %s environment variable", "QT_LOGGING_RULES"); + const QByteArray rulesSrc = qgetenv("QT_LOGGING_RULES").replace(';', '\n'); if (!rulesSrc.isEmpty()) { - QTextStream stream(rulesSrc); - QLoggingSettingsParser parser; - parser.setImplicitRulesSection(true); - parser.setContent(stream); - er += parser.rules(); + QTextStream stream(rulesSrc); + QLoggingSettingsParser parser; + parser.setImplicitRulesSection(true); + parser.setContent(stream); + + if (qtLoggingDebug()) + debugMsg("Loaded %td rules", static_cast(parser.rules().size())); + + er += parser.rules(); } const QString configFileName = QStringLiteral("qtlogging.ini");