في QT ، غالبًا ما تتم طباعة معلومات التصحيح إلى وحدة التحكم باستخدام qdebug () وغيرها من العبارات المماثلة. قد يكون من المفيد إعادة توجيه هذا الإخراج إلى ملف بدلاً من ذلك ، خاصةً لتطوير المنصات المتقاطعة. هذا يتجنب استخدام البرامج النصية Shell ويوفر حلًا أكثر اتساقًا.
لإعادة توجيه تصحيح الإخراج ، يوفر QT وظيفة QinstallMessageHandler (). يتيح لك ذلك تثبيت معالج رسالة مخصص يعالج الرسائل قبل طباعتها. إليك مثال معالج:
void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
QByteArray localMsg = msg.toLocal8Bit();
switch (type) {
case QtDebugMsg:
fprintf(stderr, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
break;
case QtInfoMsg:
// ...
case QtWarningMsg:
// ...
case QtCriticalMsg:
// ...
case QtFatalMsg:
fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
abort();
}
}
يقوم هذا المعالج بإخراج الرسائل إلى stderr ، ولكن يمكنك استبدال Stderr مع دفق ملف لإعادة توجيه الإخراج. الوظيفة:
بمجرد تثبيت QDEBUG ورسائل مماثلة سيتم إعادة توجيهها إلى المعالج والمكتوبة إلى الملف الذي حددته.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3