логирование
От: jyuyjiyuijyu  
Дата: 05.09.11 15:57
Оценка: :)
Всем привет.
как лучше логировать ?
писать ли в циклический буфер в памяти и мигать иконкой если
в буфере появились сообщения от логера и можно просмотреть их
или не показывать что есть сообщения от логгера а просто в дебрях
меню оставить пункт если он активный значит есть сообщения ?
если писать в память в кольцевой буффер то последующие
информационные сообщения могут затереть важные сообщекния об
ошибках и при просмотре создастся иллюзия что все хорошо ?
насколько большой надо делать буффер на сколько записей ?
или лучше писать в файл тогда надо както разруливать когда два
экземпляра запускаются у каждого должен быть свой файл или
запретить вторую копию ? ясно тут на 99% зависит от
специфики проги
если у Вас есть опыт или соображения по этим вопросам буду рад
выслушать.
Re: логирование
От: _nn_ www.nemerleweb.com
Дата: 05.09.11 16:10
Оценка:
Здравствуйте, jyuyjiyuijyu, Вы писали:

J>Всем привет.

J>как лучше логировать ?
J>писать ли в циклический буфер в памяти и мигать иконкой если
J>в буфере появились сообщения от логера и можно просмотреть их
J>или не показывать что есть сообщения от логгера а просто в дебрях
J>меню оставить пункт если он активный значит есть сообщения ?
J>если писать в память в кольцевой буффер то последующие
J>информационные сообщения могут затереть важные сообщекния об
J>ошибках и при просмотре создастся иллюзия что все хорошо ?
J>насколько большой надо делать буффер на сколько записей ?
J>или лучше писать в файл тогда надо както разруливать когда два
J>экземпляра запускаются у каждого должен быть свой файл или
J>запретить вторую копию ? ясно тут на 99% зависит от
J>специфики проги
J>если у Вас есть опыт или соображения по этим вопросам буду рад
J>выслушать.

Очень зависит от задачи.
Стандартный вариант log4* открывает файл и дает запись и чтение всем.
Все пишут одновременно.
А дальше зависит от конфигурации, можно бесконечно, можно ограничение на размер выставить ну и т.д.

Если требуется скорость, то такой подход может быть не достаточно быстрым и тогда нужно смотреть в сторону Memory-Mapped Files.

Вы сначала определитесь с задачей, сколько будете писать, как часто, насколько нужна скорость, конфигурируемость и т.д.
А также докажите для себя, что вам не подходит ни одна из библиотек для логов, что вам нужно писать свою.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: логирование
От: Pzz Россия https://github.com/alexpevzner
Дата: 05.09.11 22:22
Оценка: +1
Здравствуйте, jyuyjiyuijyu, Вы писали:

J>Всем привет.

J>как лучше логировать ?
J>писать ли в циклический буфер в памяти и мигать иконкой если
J>в буфере появились сообщения от логера и можно просмотреть их
J>или не показывать что есть сообщения от логгера а просто в дебрях
J>меню оставить пункт если он активный значит есть сообщения ?

Это вы считаете, что ваши пользователи будут читать ваши логи?

Если вы пишете программу для простых людей, максимум, на что вы можете рассчитывать, это то, что человек пошлет вам ваши логи по электрической почте. Соответственно, их дожно быть легко найти, и файл должен быть не залочен на чтение, когда пользователь полезет его отправлять.

Если же вы пишете системный сервис, предполагающий квалифицированного администратора, пишите свои логи туда, куда их прочие сервисы пишут. Квалифицированные администраторы обучены пользоваться системными логами.
Re[2]: логирование
От: jyuyjiyuijyu  
Дата: 07.09.11 09:11
Оценка:
Здравствуйте, _nn_, Вы писали:
__>Очень зависит от задачи.
да не стоит стоить смотреть на стандартные решения
надо исходить из специфики проги и делать подходящюю систему
логирования
"Имей мужество пользоваться собственным умом." — Иммануил Кант

Здравствуйте, Pzz, Вы писали:
Pzz>Это вы считаете, что ваши пользователи будут читать ваши логи?
пользователи — программисты в том числе и я поэтому я подумал
что хорошо бы видеть сразу если появляются сообщения от логгера
во внутреннем буфере но с другой строны это может носить обратный
эффект и будет только раздражать своей назойливостью поэтому
в выпадающем меню можно было бы оставить пункт если активный
значит есть что то
Re[3]: логирование
От: Alexander Poluektov Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 08.09.11 14:56
Оценка:
Здравствуйте, jyuyjiyuijyu, Вы писали:

J>Здравствуйте, _nn_, Вы писали:

__>>Очень зависит от задачи.
J>да не стоит стоить смотреть на стандартные решения

Смотреть на них как раз очень стоит ...

J>надо исходить из специфики проги и делать подходящюю систему

J>логирования

... и после этого принимать решение, использовать готовое, или писать свое.

P.S. Мне пока не приходилось работать с проектами, требующими "подходящих системы логгирования исходя из специфики проги".
Но, соглашусь, для C++-программиста эта тема благодатная: на ровном месте можно столько споров развести, что мама не горюй (потом плюнуть на всё, обалдев от количества опций, и оставить проект без логгирования вообще, вставляя printf для отладки).
Re: OS-то хоть какая?
От: Erop Россия  
Дата: 08.09.11 16:12
Оценка:
Здравствуйте, jyuyjiyuijyu, Вы писали:

J>как лучше логировать ?


Курсовая, что ли?
Почему всего две альтернативы? Можно же, например, запускать отдельное приложение, которое пишет логи, показывает их и всё такое, а от программы, которая клиент логгирования, этому приложению просто слать записи в лог. Как слать? Ну, например, про RPC...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: OS-то хоть какая?
От: jyuyjiyuijyu  
Дата: 09.09.11 12:56
Оценка:
Здравствуйте, Alexander Poluektov, Вы писали:

AP>Смотреть на них как раз очень стоит ...

заточеную под тулзу компактную систему логов довольно специфического поведения проще cамому попробовать написать если это just for fun тулза которая пишется по настроению в свободное время и сама очень небольшого размера
я не говорил что надо велосипедить всегда

AP>Но, соглашусь, для C++-программиста эта тема благодатная: на ровном месте можно столько споров развести, что мама не горюй (потом плюнуть на всё, обалдев от количества опций, и оставить проект без логгирования вообще, вставляя printf для отладки).

совсем без логов можно программа будет работать но потеряется интересная информация в том числе мелкие неприятности останутся незамеченными и просто пропущенными а специфика вот в чем просто вывести окно нельзя с предупреждением процесс не должен останавливатся (мало ли оставил прогу отошел она вывела окно и завис весь процесс) просто по ходу неприятности я хотел логировать чтоб всегда можно было бы просмотреть лог
Здравствуйте, Erop, Вы писали:

E>Курсовая, что ли?

Нет.
"Чем больше я узнаю, тем больше я узнаю на сколько мало я знаю" — Сократ.
все мы вечные студенты

E>Почему всего две альтернативы? Можно же, например, запускать отдельное приложение, которое пишет логи, показывает их и всё такое, а от программы, которая клиент логгирования, этому приложению просто слать записи в лог. Как слать? Ну, например, про RPC...

если это делать на уровне всей системы для всех программ как демон syslogd то нормально
а городить такое для одной утилиты которая сама в 10 раз меньше системы логирования получится это слишком )
Re: логирование
От: trophim Россия  
Дата: 10.09.11 08:36
Оценка:
И еще: а чем нынче можно посмотреть получившиеся файлы?
Т.е. требования к утилите такие: размер лога теоретически неограничен, файл как правило оооочень большой (легко могут и гигабайты быть), формат строк лога жестко не зашит в саму утилиту, крайне желательно уметь выполнять фильтрацию и подсветку (возможно, по regexp), работать нужно быстро-быстро 8-).

Есть ли такое в природе готовое? да еще и бесплатное...
Let it be! — Давайте есть пчелу!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.