Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Можно ли переопределить вывод qDebug() в файл?
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие
Litkevich Yuriy
Возникла необходимость выводить в файл, например, app.err, все то, что выводит qDebug() в консоль.
При этом не включая консоль в проект, т.е. без
CONFIG += console
как бы это сделать?
ViGOur
Можно, делается это так:
#include <qapplication.h>
#include <stdio.h>
#include <stdlib.h>

void myMessageOutput(QtMsgType type, const char *msg)
{
     switch (type) {
     case QtDebugMsg:
         fprintf(stderr, "Debug: %s\n", msg);
         break;
     case QtWarningMsg:
         fprintf(stderr, "Warning: %s\n", msg);
         break;
     case QtCriticalMsg:
         fprintf(stderr, "Critical: %s\n", msg);
         break;
     case QtFatalMsg:
         fprintf(stderr, "Fatal: %s\n", msg);
         abort();
     }
}

int main(int argc, char **argv)
{
     qInstallMsgHandler(myMessageOutput);
     QApplication app(argc, argv);
     // ...
     return app.exec();
}
только вместо stderr, используй описатель открытого файла. :)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.