Какую реализацию журналирования вы предпочитаете? - PullRequest
2 голосов
/ 06 января 2009

Я собираюсь реализовать класс ведения журнала в C ++ и пытаюсь решить, как это сделать. Мне любопытно узнать, какие существуют различные варианты ведения журналов.

Например, я использовал логирование с «уровнями» в Python. Где вы отфильтровываете события журнала, которые ниже определенного порога. Сюда также входит регистрация «имен», где вы можете отфильтровать события через иерархию, например, «app.apples. *» Не будет отображаться, а «app.bananas. *» Будет.

У меня были мысли об использовании "тегов", но я не уверен в реализации. Я видел игры, использующие «биты» для компактности.

Итак, мои вопросы:

  • Какие реализации вы создали или использовали раньше?
  • Как вы думаете, в чем их преимущества и недостатки?

Ответы [ 4 ]

3 голосов
/ 06 января 2009

Я бы прочитал этот пост Джефф Этвуд

Речь идет о переполнении ведения журнала и о том, как его избежать.

1 голос
/ 06 января 2009

Одно из наших приложений использует записи реестра для динамического управления журналированием / трассировкой во время производственного выполнения.

Например: if (Logger.TraceOptionIsEnabled (TraceOption.PLCF_ShowConfig)) {... что бы то ни было

Когда выполняется во время выполнения, если значение реестра PLCF_ShowConfig равно true, вызов возвращает значение true и все, что выполняется.

Довольно удобно.

1 голос
/ 06 января 2009

У Джеффа Этвуда была довольно интересная запись в блоге о регистрации. Конечным сообщением было то, что регистрация, как правило, не нужна (в некоторой степени).

Ведение журнала обычно не масштабируется (слишком много данных в системах с высоким трафиком).

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

Это просто информационная перегрузка.

Теперь этого нельзя сказать о однопользовательских приложениях. Для таких вещей, как мультимедийное кодирование или общее использование ОС, было бы неплохо иметь журнал для небольших приложений, потому что отладочная информация * полезна (для меня) в этой ситуации. Если вы записываете DVD-диск и что-то идет не так, просмотр информации журнала может быть очень полезным для устранения неполадок, если вы понимаете вывод журнала.

Я думаю, что несколько уровней помогут пользователю, например:

  • Нет журналов
  • Базовое ведение журнала для общих отзывов пользователей
  • Высокотехнологичные данные для интерпретации разработчиком или специалистом службы поддержки

В зависимости от ситуации может быть полезно сохранить ВСЕ данные журнала и отображать пользователю только основную информацию или, возможно, дать возможность просмотреть все подробные данные.

Все зависит от домена.

1 голос
/ 06 января 2009

На странице Log4J википедии много ссылок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...