How do I use qDebug in a Qt console application to output to the Qt Creator \"application output\" window? Currently qDebug writes to the console window which interferes with th
To redirect QDebug to multiple places, you might have to write some code, maybe like this:
QList messageHandlers_;
static void messageDispatcher(QtMsgType type, const char *msg)
{
foreach (QtMsgHandler callback, ::messageHandlers_)
callback(type, msg);
}
static void messageLogger(QtMsgType type, const char *msg)
{
QString output;
switch (type) {
case QtDebugMsg: output = QString("mesage: %1\n").arg(msg); break;
case QtWarningMsg: output = QString("warning: %1\n").arg(msg); break;
case QtCriticalMsg: output = QString("critical: %1\n").arg(msg); break;
case QtFatalMsg: output = QString("fatal: %1\n").arg(msg); break;
default: return;
}
QFile file("log.txt");
if (file.open(QIODevice::WriteOnly | QIODevice::Append))
QTextStream(&file) << output;
}
int main()
{
...
::messageHandlers_.append(messageLogger)
qInstallMsgHandler(messageDispatcher);
...
}