Название: Класс или компонент для логгирования работы программы. Отправлено: forallstuff от Март 31, 2011, 10:42 Здравствуйте. В процессе работы столкнулся с потребностью вести журнал работы ПО, раньше использовали cout, qDebug, иногда модуль логгироваиня компонента qtservice, но сейчас все это не подходит.
Название: Re: Класс или компонент для логгирования работы программы. Отправлено: Sahab от Март 31, 2011, 10:57 как вариант:
http://libqxt.bitbucket.org/doc/tip/tech-log.html (http://libqxt.bitbucket.org/doc/tip/tech-log.html) а чем qDebug не устроил? Название: Re: Класс или компонент для логгирования работы программы. Отправлено: asvil от Март 31, 2011, 11:59 И тут появляюсь я с пропагандой log4qt. Итак уважаемый слушатель. log4qt это порт на Qt знаменитой библиотеки для Java. Он позволяет Вам:
# Вести журнал одновременно ## в консоль (stdout, stderr, (win* debugoutput)), с цветами как cmake. ## в сеть (telnet server, который раздает лог направо и налево) ## вообще в любой QIODevice ## в объект, у которого сигнал срабатывает. # Формировать сообщения в соответсвии с тем, как ваша душа пожелает. # Вести несколько журналов в разные места. Журналы идентифицируются строковым именем. # Перенаправить qDebug в журнал "Qt". И еще много внутренних финтифлюшек для того, чтобы Ваша многопоточная программа ни за что не упала, даже если количество Ваших потоков составит максимальное допустимое количество для операционной системы и они все одновременно попадут в дедлок и будут слать сообщение в один журнал о том, что не получается захватить ресурс, так как этот ресурс захвачен другим соседом. https://gitorious.org/log4qt Название: Re: Класс или компонент для логгирования работы программы. Отправлено: vunder от Март 31, 2011, 15:07 В своем проекте я сам реализовывал журнал событий. Нужно было сделать это быстро и просто. Реализовал через фильтр событий.
В файле messageevent.h объявил 3 метода для отправки сообщения. Сами сообщения отправляются через QCoreApplication::postEvent(), поэтому нет проблем с многопоточность. Механизм нормально работает и с плагинами. Название: Re: Класс или компонент для логгирования работы программы. Отправлено: forallstuff от Март 31, 2011, 15:18 да и я сам писал, было дело, но хотелось чего-нибудь широкого и универсального, на вскидку наткнулся на log4cpp, но увидев отсутствие документации сразу плюнул. Пока остановился на qxtlib, компилирую, скоро буду тестировать.
Название: Re: Класс или компонент для логгирования работы программы. Отправлено: kolob от Май 21, 2011, 22:40 А я вот так реализовал ведение лог файла:
Код: void myMessageOutput(QtMsgType type, const char *msg) Цитировать Пока остановился на qxtlib, компилирую, скоро буду тестировать Ну и какое твое мнение об qxtlib? Название: Re: Класс или компонент для логгирования работы программы. Отправлено: Пантер от Май 23, 2011, 07:39 kolob, нехорошее решение - у тебя на каждое сообщение открывается файл.
Название: Re: Класс или компонент для логгирования работы программы. Отправлено: SASA от Май 23, 2011, 09:49 http://habrahabr.ru/blogs/cpp/118165/ (http://habrahabr.ru/blogs/cpp/118165/)
Название: Re: Класс или компонент для логгирования работы программы. Отправлено: Пантер от Май 23, 2011, 09:59 Когда-то нужно было по быстренькому прикрутить логирование, вот так получилось:
Код
Название: Re: Класс или компонент для логгирования работы программы. Отправлено: kolob от Май 23, 2011, 14:13 Цитировать kolob, нехорошее решение - у тебя на каждое сообщение открывается файл. Цитировать Когда-то нужно было по быстренькому прикрутить логирование, вот так получилось: Пантер а у тебя в этом примере разве не на каждое сообщение открывается файл? Название: Re: Класс или компонент для логгирования работы программы. Отправлено: Пантер от Май 23, 2011, 14:15 kolob, неа. Внимательно посмотри. ;)
Название: Re: Класс или компонент для логгирования раб& Отправлено: kolob от Май 23, 2011, 14:53 Цитировать kolob, неа. Внимательно посмотри. Да точно, просмотрел. ;) Спасибо за пример Пантер.А вообще зачем изобретать велосипед, когда до нас все изобрели, log4qt, log4cplus я так считаю Название: Re: Класс или компонент для логгирования работы программы. Отправлено: kolob от Май 24, 2011, 10:30 Филоненко Михаил а для 3-хи log4Qt использовать можно?
Название: Re: Класс или компонент для логгирования работы программы. Отправлено: asvil от Май 24, 2011, 10:50 3-я версия не поддерживается.
|