Skip to content

Commit fb37be7

Browse files
committed
core/log: ignore on-disk logging configs for quickshell* rules.
Fixes fedora hiding all command output by default.
1 parent 9708d82 commit fb37be7

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

src/core/logging.cpp

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -182,17 +182,18 @@ void LogManager::filterCategory(QLoggingCategory* category) {
182182
auto categoryName = QLatin1StringView(category->categoryName());
183183
auto isQs = categoryName.startsWith(QLatin1StringView("quickshell."));
184184

185-
if (instance->lastCategoryFilter) {
186-
instance->lastCategoryFilter(category);
187-
}
188-
189-
auto filter = CategoryFilter(category);
185+
CategoryFilter filter;
190186

187+
// We don't respect log filters for qs logs because some distros like to ship
188+
// default configs that hide everything. QT_LOGGING_RULES is considered via the filter list.
191189
if (isQs) {
192-
filter.debug = filter.debug || instance->mDefaultLevel == QtDebugMsg;
193-
filter.info = filter.debug || instance->mDefaultLevel == QtInfoMsg;
194-
filter.warn = filter.info || instance->mDefaultLevel == QtWarningMsg;
195-
filter.critical = filter.warn || instance->mDefaultLevel == QtCriticalMsg;
190+
filter.debug = instance->mDefaultLevel == QtDebugMsg;
191+
filter.info = instance->mDefaultLevel == QtInfoMsg;
192+
filter.warn = instance->mDefaultLevel == QtWarningMsg;
193+
filter.critical = instance->mDefaultLevel == QtCriticalMsg;
194+
} else if (instance->lastCategoryFilter) {
195+
instance->lastCategoryFilter(category);
196+
filter = CategoryFilter(category);
196197
}
197198

198199
for (const auto& rule: *instance->rules) {
@@ -235,8 +236,12 @@ void LogManager::init(
235236

236237
{
237238
QLoggingSettingsParser parser;
238-
parser.setContent(rules);
239+
// Load QT_LOGGING_RULES because we ignore the last category filter for QS messages
240+
// due to disk config files.
241+
parser.setContent(qEnvironmentVariable("QT_LOGGING_RULES"));
239242
instance->rules = new QList(parser.rules());
243+
parser.setContent(rules);
244+
instance->rules->append(parser.rules());
240245
}
241246

242247
qInstallMessageHandler(&LogManager::messageHandler);

0 commit comments

Comments
 (0)