कई स्थानों के लिए QDebug अनुप्रेषित करने के लिए आपको कुछ कोड लिखने के लिए हो सकता है, हो सकता है इस तरह:
QList<QtMsgHandler> 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);
...
}
यह कोड काम नहीं करता है। सुनिश्चित नहीं है कि यह कोड नमूने में टाइपों की वजह से है (जिसमें से कम से कम एक प्रतीत होता है) या क्योंकि 2013 से क्यूटी प्रगति हुई है और उत्तर बहिष्कृत कॉल का उपयोग करता है। –