如何抑制 QXcbConnection:XCB 错误

如何抑制 QXcbConnection:XCB 错误

我在 Arch Linux 下使用 KDE Plasma,有很多日志,例如

kwin_x11[5129]: qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 11416, resource id: 56623191, major code: 20 (GetProperty), minor code: 0

在我的日记里。

这些错误其实是无害的,我想抑制它们,这样我的日志就不会被淹没。我发现一个流行的解决方案是设置,QT_LOGGING_RULES="*=false"但这会完全禁用日志记录,即使在它实际上有用的地方也是如此。

我想知道如何才能只针对这个 Qt 日志类别而不影响其他类别?

我尝试过例如QT_LOGGING_RULES="qt.qpa.xcb.*=false" QT_LOGGING_RULES="qpa.xcb.*=false" QT_LOGGING_RULES="qt.*.xcb.*=false"等等,但都没有用。

答案1

到目前为止我能做的最好的事情是:

export QT_LOGGING_RULES='*.debug=false;qt.qpa.*=false'

答案2

正如有人在前面的回答中指出的那样,由于某种原因,通过QT_LOGGING_RULESinvolving指定多条规则的语法;在 Ubuntu 上不起作用。

对我而言,有效的方法是使用QLoggingCategory::setFilterRules和 使用\n作为各个规则的分隔符,这样才能发挥作用。扩展上一个答案:export QLoggingCategory::setFilterRules(QStringLiteral("*.debug=false\nqt.qpa.*=false"))

相关内容