我在 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_RULES
involving指定多条规则的语法;
在 Ubuntu 上不起作用。
对我而言,有效的方法是使用QLoggingCategory::setFilterRules
和 使用\n
作为各个规则的分隔符,这样才能发挥作用。扩展上一个答案:export QLoggingCategory::setFilterRules(QStringLiteral("*.debug=false\nqt.qpa.*=false"))