在linux上运行我的Qt5应用程序时,我看不到qDebug,qWarning,qCritical或qFatal的任何输出.我知道我可以使用qInstallMsgHandler安装消息处理程序并查看它们,但这是相当重量级的.
我只想查看qWarning日志,看看是否有任何错误连接的信号.有没有办法看这个日志?一个特殊的命令行选项,一个环境变量?
我想我记得在过去,所有内容都打印到stderr,也许这是Qt5的变化?
pep*_*ppe 12
请不要错误地假设qDebug,qWarning,qCritical和qFatal始终登录标准错误.绝对不是这样的.
实际目的地取决于Qt配置和目标操作系统.另外,5.4介绍了一些行为变化.请参阅此处和此处进行讨论.
TL; DR:
在Qt> = 5.4:
QT_LOGGING_TO_CONSOLE环境变量设置为1.QT_LOGGING_TO_CONSOLE环境变量设置为0(这将强制通过本机系统记录器进行日志记录).QT_LOGGING_TO_CONSOLE环境变量,则是否登录到控制台取决于应用程序是在TTY(在UNIX上)运行还是在控制台窗口(在Windows上).在Qt <5.4时,情况更加混乱.
5.4之前的方法存在的问题是,如果Qt是使用journald支持构建的,在Unix IDE下,fi将无法捕获应用程序的调试输出.那是因为输出转到了journald,而不是IDE.在5.4中,这种方法在操作系统之间变得更加灵活和统一.
如果您碰巧运行 Arch Linux,它使用该-journald选项编译 Qt,则所有调试输出默认都会定向到 systemd 日志(显示为journalctl)。
您可以通过定义QT_LOGGING_TO_CONSOLE=1为环境变量来覆盖此行为。
| 归档时间: | 
 | 
| 查看次数: | 3084 次 | 
| 最近记录: |