【发布时间】:2013-10-09 21:47:13
【问题描述】:
我想将 qDebug() 输出保留在日志文件中并在控制台上显示,我已经尝试过:
qDebug() << "Hand's up!";
QTextStream stream(stdout);
QTextStream out(&logFile);
out << stream.readAll();
但即使我将stdout 替换为stderr,它也根本不起作用
【问题讨论】:
我想将 qDebug() 输出保留在日志文件中并在控制台上显示,我已经尝试过:
qDebug() << "Hand's up!";
QTextStream stream(stdout);
QTextStream out(&logFile);
out << stream.readAll();
但即使我将stdout 替换为stderr,它也根本不起作用
【问题讨论】:
您可以安装自己创建的消息处理程序,这里有一个很棒的最小示例:Nokia Wiki: how to redirect qDebug output to a file。这将允许您正常使用 qDebug() 调用并将其输出,并且您可以在消息被写出时对其进行调整。
【讨论】:
use of undeclared identifier 'qInstallMsgHandler'; did you mean 'qInstallMessageHandler' ,所以我更正了,结果更糟
QApplication 的实例时设置应用程序名称,然后在程序中的任何位置从该类访问它。
使用QDebug 类而不是仅仅使用qDebug()。
qDebug() 使用默认设置创建调试对象,例如将输出字符串发送到何处。如果您自己创建一个对象,您将拥有更多的控制权。
【讨论】: