Qt打印系统库的日志 - QLoggingCategory

Qt的动态库通过源码可以可以看到含有大量的qCInfoqCDebug 等大量的日志, 但是我们正常运行Qt程序,这些动态库或插件里面的日志是不会输出到我们的控制台里面的。
所以本章主要记录怎么输出这些日志出来。

一: 步骤

主要使用的是Qt的 函数 QLoggingCategory::setFilterRules(), 它可以设置各个日志模块的打印等级。
我们可以在main()函数的第一行这样设置.

代表任何模块的任何等级日志都会输出出来。

#include <QLoggingCategory>
int main(int argc, char *argv[])
{QLoggingCategory::setFilterRules("""*.debug=false\n""*.critical=true\n""*.warning=true\n""*.info=true\n""");QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}

我们查看控制台就可以发现Qt内容的日志可以查看了,方便追踪问题。
在这里插入图片描述

二: 过滤指定模块

有时候发现某些日志比较多,影响阅读了,可以过滤掉对应模块的日志。
比如 过滤上面日志中 Paint ended. Back buffer valid region is now QRegion(0,0 800x600)这个模块的日志。
我们通过源码搜索可以发现:
这个日志对应的category的方法为: lcQpaBackingStore
在这里插入图片描述
在搜索 lcQpaBackingStore 对应注册的 字符串的名字,就代表这个模块名字。我们现在指定过滤这个模块。
在这里插入图片描述
过滤代码为:
在上面正则后面追加指定模块的格式。
记得每行结尾的\n不能漏了, 不然不会生效。

#include <QLoggingCategory>
int main(int argc, char *argv[])
{QLoggingCategory::setFilterRules("""*.debug=false\n""*.critical=true\n""*.warning=true\n""*.info=true\n""qt.qpa.backingstore.debug=false\n""qt.qpa.backingstore.info=false\n"QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}

具体格式可以参考Qt官方说明:https://doc.qt.io/qt-6/qloggingcategory.html#configuring-categories
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/576357.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【分布式】——CAPBASE理论

CAP&BASE理论 ⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/tree-learning-notes ⭐⭐⭐⭐⭐⭐ Spring专栏&#x1f449;https://blog.csdn.net/weixin_53580595/category_12279588.html Sprin…

Rust控制台输出跑马灯效果,实现刷新不换行,实现loading效果

要在 Rust 中实现控制台刷新而不换行&#xff0c;以实现类似 "loading" 状态的效果&#xff0c;你可以使用 \r&#xff08;回车符&#xff09;来覆盖上一行的内容。 use std::io::{self, Write}; use std::thread; use std::time::Duration;fn main() {let loading_…

基于SSM学生信息管理系统

采用技术 基于SSM学生信息管理系统的设计与实现~ 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringMVCMyBatis 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 页面展示效果 总体功能设计 登录页面 后台首页 学生信息页面 添加学生用户 编辑…

泛型,数据结构,集合

文章目录 泛型介绍解决问题好处使用通配符泛型的下限泛型的上限 数据结构定义常见的数据结构栈(先进后出)队列(先进先出)数组结构链表结构哈希表结构 集合List集合特点特有方法子类及其底层数据结构LinkedList集合 Set集合特点没有特有方法子类及其底层数据结构LinkedHashSet集…

SPDZ基础使用手册(深度学习视角)

基本类型 深度学习中最常使用的便是秘密定点数sfix&#xff0c;有关定点数的高级运算协议请参阅Paper: Secure Computation With Fixed-Point Numbers. 容器类型 SPDZ的深度学习框架主要基于TensorFlow实现&#xff0c;其中使用的容器是张量Tensor&#xff0c;在库中的定义如下…

抓包神器大比拼:Thor、克魔助手和Http Catcher在iOS系统下的优缺点分析

引言 在苹果手机的iOS系统相对封闭的情况下&#xff0c;抓包工具并不是很常见。大多数人可能对这类工具并不熟悉&#xff0c;除了少数安全专家之外&#xff0c;一般用户很少会接触到这些工具。然而&#xff0c;在某些特定场景下&#xff0c;比如网络调试、安全测试等&#xff…

RTSP应用:实现视频流的实时推送

在实现实时视频流推送的项目中&#xff0c;RTSP&#xff08;Real Time Streaming Protocol&#xff09;协议扮演着核心角色。本文将指导你通过安装FFmpeg软件&#xff0c;下载并编译live555&#xff0c;以及配置ffmpeg进行视频流推送&#xff0c;来实现一个基本的RTSP流媒体服务…

WorkPlus AI助理实现私有化AI智能客服,助力企业满足客户需求

私有化AI智能客服的出现&#xff0c;以其卓越的性能和全面的功能&#xff0c;助力企业提升客户服务体验。WorkPlus AI助理作为一款领先的解决方案&#xff0c;可实现企业的私有化AI智能客服&#xff0c;提升客户服务的质量和效率。 私有化AI智能客服的价值和意义不言而喻。通过…

【机器学习】深入探讨基于实例的学习及K-最近邻算法

深入探讨基于实例的学习及K-最近邻算法 在机器学习的众多策略中&#xff0c;基于实例的学习方法因其简单性和高效性而备受关注。这种方法的核心理念在于利用已知的数据实例来预测新数据的标签或属性。本文将深入探讨其中的两个重要概念&#xff1a;最近邻算法和K-最近邻算法&a…

Untiy 布局控制器Aspect Ratio Fitter

Aspect Ratio Fitter是Unity中的一种布局控制器组件&#xff0c;用于根据指定的宽高比来调整包含它的UI元素的大小。实际开发中&#xff0c;它可以确保UI元素保持特定的宽高比&#xff0c;无论UI元素的内容或父容器的大小如何变化。 如图为Aspect Ratio Fitter组件的基本属性&…

文档翻译-NVIDIA DALI Getting Started

概述 NVIDIA数据加载库&#xff08;DALI&#xff09;是一个高度优化的构建模块集合和执行引擎&#xff0c;用于加速计算机视觉和音频深度学习应用的数据管道。 由深度学习框架提供的输入和增强管道通常可以分为以下两类&#xff1a; 快速但不灵活 - 以C编写&#xff0c;它们…

中彩票.Java

题目&#xff1a;投注号码由6个红球&#xff0c;1个蓝球组成&#xff0c;红色球从1~33&#xff08;每个数字只有一个&#xff0c;不能重复&#xff0c;不能超出范围&#xff09;中选择&#xff1b;蓝色球从1~16中选择&#xff0c;红蓝球数字互不干扰 分析&#xff1a;系统随机…