![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
Плох тот Сишник что не писал свой логгер 8)
Вопрос прост: чем логируете в приложении? Я в свое время пробывал: log4cxx, log4cpp, boost::logging, Pantheios, чета от мозиллы... Но в целом не нашел ничего чтобы удовлетворяло следующим условиям: 1) нативная поддержка wchar_t-шных типов 2) прозрачное логирование в unicode-е ansi данных (конвертация) 3) потокобезопасность 4) безопасность выполнения (очень неприятно один раз попал на AcccessViolation уже не помню в каком логгере при событи "места на диске нету") 5) быстрота 6) небольшая (много и не надо) настраиваемость вида выводимого лога 7) малые (а лучше без них) утечки памяти и ресурсов во время работы 8) логирование стандартных эксепшенов (std::exception) и\или возможность написать свою систему распечатки определенных exception-ов 9) поддержка больших файлов (более 2^32 байт) ... Посоветуйте пжлст. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
boost::logging
удобная, не монструозная, не перегруженная. но недавно, после появления boost.property_tree, подумал написать обертку, чтоб лог велся в формате JSON. очень удобно. иногда бывает необходимо анализировать лог. и приходится писать парсеры. Это сообщение отредактировал(а) boostcoder - 13.4.2010, 22:43 |
|||
|
||||
djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 8 Всего: 39 |
Пользуюсь своими поделками.
Мои требования: настраиваемость формата вывода настраиваемость цели вывода (stderr, файл, сокет, БД) потокобезопасность уровневость возможность полного исключения выполнения логгерного кода из компилируемой программы в релиз-режиме удовлетворены. А вот нафик логгеру кодировки прикручивать не ясно... Еще не ясно, откуда должны появиться утечки памяти и почему он может тормозить больше, чем устройство вывода. Эксепшенами традиционно не пользуюсь. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
boostcoder, анализом можно и без json заниматься (LogParser от мелгомягких неплох http://www.microsoft.com/downloads/details...b2-f8d975cf8c07 , ну и вообще много можно найти подобного)....
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
jonie |
|
||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
ну это для многих логеров не проблема, на крайняк немного займет сделать ifdef-ов.... (да я особо не вижу в выключении логирования вообще смысла)
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||||||
|
|||||||||
djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 8 Всего: 39 |
jonie, странно это все очень, никогда не возникало никаких заморочек. И проекты вроде бы немаленькие были... Может быть просто стоит систему логов использовать по прямому назначению, а не в писькоизмерительных тестах?
>стандартные эксепшены идут в ansi например,.. Сам пользуюсь исключительно utf-8 и при этом нет никаких проблем с char-строками. Или внешняя библиотека выдает что-то по-русски в однобайтовой кодировке? Ну так это не проблема логгера, просто нужно сделать промежуточную перекодировку. Смысл использования wchar не раскрыт. Алсо, содрал с википедии, потому что лень искать более авторитетные источники:
>поверьте, может В реальной жизни с прямыми руками - нет, поверьте. Сферических программистов, использующих логгеры в вакууме не рассматриваем. >в случае многопоточного вывода... В общем случае, если отбросить нюансы: мало потоков - блокировка, много - очередь. Тормоза? Если 256 тысяч сообщений в секунду класть, то несомненно, но этот случай лучше оставьте для того авторитетного издания, а сами welcome to real life. Я что хочу сказать то: если система логгирования работает по своему прямому назначению (софтина стартанула, отписала, что-то сделала, отписала,..) - то проблем никаких. Если же нужно распечатывать миллиарды значений и состояний, то стоит подумать либо о пересмотре своих взглядов на отладку, либо писать специализированное решение, которое оптимально съес и не подавится таким потоком. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Я предпочитаю OutputDebugString или qDebug, т.к. без отладчика или программы просмотра отладочного вывода (типа DebugView) фактически не выполняется (не кушает процессор/винчестер), соответственно не нужно ifdef'ов
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 2 Всего: 306 |
||||
|
||||
SenkraD |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 3.2.2006 Где: Украина::Киев Репутация: 2 Всего: 23 |
использую boost::logging так, как есть всё, что хотят mrbrooks и djamshud,
правда насчёт последнего пунктика не уверен - не проверял. P.S. жаль что в boost не вошёл. в планах посмотреть boost::log, который, вродь, на следующий релиз утвердили + плюс щас разбираюсь с Pantheios - нравится мне её автор. Правда мне не очень нравится дизайн Pantheios, но может плохо разобрался, хотя Уилсон всегда на скорость давил... Это сообщение отредактировал(а) SenkraD - 14.4.2010, 10:03 |
|||
|
||||
RatHat |
|
|||
![]() Вождь индейцев ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 5.9.2005 Репутация: нет Всего: 1 |
Использую либо log4cpp, либо самописную лабуду. В зависимости от требований к логгеру.
--------------------
Ma a kis' hi ve'ist i wan'i na e'ho ho wan'i |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
зависит от требований проекта, вообще стараюсь по возможности избегать сторонних библиотек, так что в основном самописный.
|
|||
|
||||
Peter |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 28.7.2003 Где: Ставрополь Репутация: -1 Всего: 1 |
log4cxx, версия 0.10.0. В отличие от 0.9.7, он с работает с юникодом в путях к файлам.
Есть; при построении библиотеки надо указать соответствующую настройку. Тоже есть. Сам проверял.
Про остальное с уверенностью сказать не могу. -------------------- всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23). |
||||
|
|||||
ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 1 Всего: 23 |
Небольшой оффтопик. Кто-нибудь знает хорошую документацию, желательно на русском языке для boost::logging? Или все пользуются инфой с оффициального сайта? Хочу ее попробовать, но лениво в нем разбираться.
Что меня касается, то пользуюсь
|
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
взял буст лог, веселья ради передал в ansi логгер wchar_t* строку, распечатал адрес строки... "Да, это правильно" - скажут многие, но на мой взгляд это далеко не то поведение, которое должно быть в простом логгере.....
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |