Be more verbose if QT_LOGGING_DEBUG is set

Pick-to: 6.7
Fixes: QTBUG-121380
Change-Id: Ieb977ada03aa0128cbaeee796f42508fd6db4031
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
Kai Köhne 2024-01-23 16:04:15 +01:00
parent 32a1151245
commit 0616741288

View File

@ -244,20 +244,29 @@ QLoggingRegistry::QLoggingRegistry()
static bool qtLoggingDebug() 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; return debugEnv;
} }
static QList<QLoggingRule> loadRulesFromFile(const QString &filePath) static QList<QLoggingRule> loadRulesFromFile(const QString &filePath)
{ {
if (qtLoggingDebug()) {
debugMsg("Checking \"%s\" for rules",
QDir::toNativeSeparators(filePath).toUtf8().constData());
}
QFile file(filePath); QFile file(filePath);
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
if (qtLoggingDebug())
debugMsg("Loading \"%s\" ...",
QDir::toNativeSeparators(file.fileName()).toUtf8().constData());
QTextStream stream(&file); QTextStream stream(&file);
QLoggingSettingsParser parser; QLoggingSettingsParser parser;
parser.setContent(stream); parser.setContent(stream);
if (qtLoggingDebug())
debugMsg("Loaded %td rules", static_cast<ptrdiff_t>(parser.rules().size()));
return parser.rules(); return parser.rules();
} }
return QList<QLoggingRule>(); return QList<QLoggingRule>();
@ -270,18 +279,29 @@ static QList<QLoggingRule> loadRulesFromFile(const QString &filePath)
*/ */
void QLoggingRegistry::initializeRules() void QLoggingRegistry::initializeRules()
{ {
if (qtLoggingDebug()) {
debugMsg("Initializing the rules database ...");
debugMsg("Checking %s environment variable", "QTLOGGING_CONF");
}
QList<QLoggingRule> er, qr, cr; QList<QLoggingRule> er, qr, cr;
// get rules from environment // get rules from environment
const QByteArray rulesFilePath = qgetenv("QT_LOGGING_CONF"); const QByteArray rulesFilePath = qgetenv("QT_LOGGING_CONF");
if (!rulesFilePath.isEmpty()) if (!rulesFilePath.isEmpty())
er = loadRulesFromFile(QFile::decodeName(rulesFilePath)); er = loadRulesFromFile(QFile::decodeName(rulesFilePath));
if (qtLoggingDebug())
debugMsg("Checking %s environment variable", "QT_LOGGING_RULES");
const QByteArray rulesSrc = qgetenv("QT_LOGGING_RULES").replace(';', '\n'); const QByteArray rulesSrc = qgetenv("QT_LOGGING_RULES").replace(';', '\n');
if (!rulesSrc.isEmpty()) { if (!rulesSrc.isEmpty()) {
QTextStream stream(rulesSrc); QTextStream stream(rulesSrc);
QLoggingSettingsParser parser; QLoggingSettingsParser parser;
parser.setImplicitRulesSection(true); parser.setImplicitRulesSection(true);
parser.setContent(stream); parser.setContent(stream);
if (qtLoggingDebug())
debugMsg("Loaded %td rules", static_cast<ptrdiff_t>(parser.rules().size()));
er += parser.rules(); er += parser.rules();
} }