а я использую qDebug(), qWarning(), etc.
void onLogMessage(QtMsgType, const QMessageLogContext &context, const QString &msg)
{
static QMutex mutex;
QMutexLocker lock(&mutex);
fprintf(stderr, "%s: %s\n", context.category, msg.toLocal8Bit().constData());
if (MainWindow::s_textEdit != 0)
MainWindow::s_textEdit->append(context.category + QString(": ") + msg);
//тут же можешь сохранять в файл.
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QCoreApplication::setApplicationVersion("0.008");
qInstallMessageHandler(onLogMessage);
MainWindow w;
w.show();
return a.exec();
}
ну и любом месте приложения пишешь:
qDebug()<<"Это отладочная информация";
qFatal()<<"Все пропало, шеф";
Плюс в том, что не надо сигналов-слотов, все попадает в функцию onLogMessage, там уже можно делать все, что угодно с сообщением.