crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Вывод отладочной информации, централизованно, аля qDebug, qCritical и ...
balbes
  опции профиля:
сообщение 25.10.2007, 16:48
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 62
Регистрация: 11.10.2007
Пользователь №: 10

Спасибо сказали: 0 раз(а)




Репутация:   0  


Нужно выводить отладочную информацию в файл, но на данный момент у меня натыкано очень много qDebug'ов и qCritical'ов, который соответственно выводят на консоль. Выходом из сложившейся ситуации, вижу только написание синглтона, и замену qDebug'ов и qCritical'ов на вызов соответствующих методов из него.

Может можно это сделать как-то красивее? А то менять очень и очень много нужно... :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
sfour.aj
  опции профиля:
сообщение 26.2.2013, 6:31
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 1
Регистрация: 26.2.2013
Пользователь №: 3728

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте. Вижу, что тема закрыта, но не я мог обойти столь напряженную дискуссию :rolleyes:
Я в каждом серьезном проекте использую вывод логов в файл, так называемую экстремальную отладку. Делаю я это через тот же MsgHandler, все отлично работает:

void myMessageOutput(QtMsgType type, const char *msg)
{
QFile fMessFile(qApp->applicationDirPath() + "/myProjectLog.log");
if(!fMessFile.open(QIODevice::Append | QIODevice::Text)){
return;
}
QString sCurrDateTime = "[" + QDateTime::currentDateTime().toString("dd.MM.yyyy hh:mm:ss.zzz") + "]";
QTextStream tsTextStream(&fMessFile);
switch(type){
case QtDebugMsg:
tsTextStream << QString("myProjectLogDebug%1: %2\n").arg(sCurrDateTime).arg(msg);
break;
case QtWarningMsg:
tsTextStream << QString("myProjectLogWarning%1: %2\n").arg(sCurrDateTime).arg(msg);
break;
case QtCriticalMsg:
tsTextStream << QString("myProjectLogCritical%1: %2\n").arg(sCurrDateTime).arg(msg);
break;
case QtFatalMsg:
tsTextStream << QString("myProjectLogFatal%1: %2\n").arg(sCurrDateTime).arg(msg);
abort();
}
tsTextStream.flush();
fMessFile.flush();
fMessFile.close();
}


Такой вариант меня еще ни разу не подводил. Хотя вариант с созданием переменной QDebug тоже вполне рабочий, этот будет более изящным (ИМХО)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- balbes   Вывод отладочной информации, централизованно   25.10.2007, 16:48
- - ubuntu   Используй qInstallMsgHandler( fnc);   25.10.2007, 16:53
- - balbes   Непонятно, как это относится к моей проблеме, прим...   25.10.2007, 16:55
- - ViGOur   Примерно так: #include <qapplication.h> #i...   25.10.2007, 16:59
- - balbes   Спасибо, то что доктор прописал...   25.10.2007, 17:09
- - CodeHunter   Цитата(ViGOur @ 25.10.2007, 16:59) Пример...   23.9.2010, 12:21
- - Litkevich Yuriy   Цитата(CodeHunter @ 23.9.2010, 16:21) Ост...   23.9.2010, 13:12
- - igor_bogomolov   Цитата(CodeHunter)Сегодня я уже второй рас вижу пл...   23.9.2010, 13:17
- - Litkevich Yuriy   Цитата(igor_bogomolov @ 23.9.2010, 17:17)...   23.9.2010, 13:25
- - igor_bogomolov   Цитата(Litkevich Yuriy)я не против подъёма старой ...   23.9.2010, 13:55
- - kwisp   почему просто средствами ОС не перенаправить станд...   23.9.2010, 14:11
- - CodeHunter   Цитата(igor_bogomolov @ 23.9.2010, 13:55)...   23.9.2010, 17:21
- - igor_bogomolov   Цитата(CodeHunter)Когда у нас есть объект класа де...   24.9.2010, 8:46
- - CodeHunter   Цитата(igor_bogomolov @ 24.9.2010, 8:46) ...   24.9.2010, 9:26
- - igor_bogomolov   ЦитатаСмотри что человер хотел с самого начала и ч...   24.9.2010, 9:32
- - CodeHunter   Цитата(igor_bogomolov @ 24.9.2010, 9:32) ...   24.9.2010, 9:43
- - igor_bogomolov   CodeHunter, да что ж ты какой не адекватный. Читай...   24.9.2010, 9:46
- - Litkevich Yuriy   Цитата(igor_bogomolov @ 24.9.2010, 13:46)...   24.9.2010, 10:17
- - sfour.aj   Здравствуйте. Вижу, что тема закрыта, но не я мог ...   26.2.2013, 6:31


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.11.2024, 17:38