Вход в файлы или в программу просмотра событий? - PullRequest
8 голосов
/ 30 августа 2010

Мне было интересно, что такое «правильный» способ записи информационных сообщений; в файлы или в специальный журнал в программе просмотра событий?

Мне нравится входить в файлы, так как я могу использовать непрерывный прослушиватель плоских файлов и видеть свежие новые журналы за каждый день, плюс в средстве просмотра событий я вижу только одно сообщение за раз - где в файле я могу сканировать в течение дня очень легко Мой коллега утверждает, что файлы просто занимают место, и ему нравится, когда его предупреждения, ошибки и информационные сообщения находятся в одном месте. Как вы думаете? Есть ли предпочтительный способ? Если так, то почему?

Кроме того, есть ли проблемы с параллелизмом в каком-либо из методов? Я прочитал, что entlib является поточно-ориентированным и генерирует Monitor.Enter, если слушатель не является поточно-ориентированным, но я хочу убедиться (мы просто используем Logger.Write). Мы используем entlib 3.1.

Заранее спасибо.

Ответы [ 6 ]

5 голосов
/ 02 апреля 2013

Вот эмпирическое правило, которое я использую при регистрации сообщений.

EventLog (если у вас есть доступ, конечно) - Мы всегда регистрируем необработанные исключения - В большинстве случаев мы регистрируем ошибки или фаталы - В некоторых случаях мы регистрируем предупреждения - В некоторых очень редких случаях мы регистрируем информацию - Мы никогда не будем регистрировать бесполезные общие сообщения типа: «Я здесь, бла, бла, бла»

Файл журнала - Общее правило, мы регистрируем все, но можем выбрать тип уровня или фильтр, чтобы уменьшить объем регистрируемых сообщений

EventLog всегда хороший вариант, потому что он привязан к WMI. Таким образом, такие продукты, как Open View и другие, могут отслеживать и предупреждать операции, если что-то пошло не так. Тем не менее, сведите сообщения к минимуму, потому что он медленный, его размер ограничен для каждого сообщения и лимит, поскольку вы можете легко заполнить EventLog довольно быстро, и ваше приложение должно обработать страшное исключение «EventLog is Full»: )

Надеюсь, это поможет ...

3 голосов
/ 30 августа 2010

Не существует «правильного» пути. Это зависит от ваших требований.

Вам «нравится» смотреть на плоские файлы, но сколько (тысяч) строк вы действительно можете читать каждый день?

То, что вам кажется необходимым, - это план (политика), который должен включать в себя некоторые инструменты. Спросите себя, как быстро вы заметите аномалию в журналах? А отсутствие чего-то нормального?

Журнал событий - это немного больше работы / накладных расходов, но он может легко контролироваться удаленно (несколькими серверами) с помощью некоторого инструмента. Если вы используете (только) ручной осмотр, не беспокойтесь.

2 голосов
/ 01 декабря 2010

В корпоративных приложениях существуют различные типы журналов, такие как -

  1. Журналы операций - Технические журналы, которые используются в процессе и полезны при отладке
  2. Журналы аудита - журналы, используемые для целей аудита.Наличие таких журналов является юридическим требованием в некоторых случаях.

Что хранить где: -

  1. Что касается аудитажурналы или любые журналы с конфиденциальной информацией касаются их, они должны идти в базу данных, где они могут храниться безопасно.

  2. Для журналов активности я предпочитаю файлы.Но у нас также должны быть разные уровни журнала , такие как Error, Info, Verbose и т. Д. , которые должны быть настраиваемыми.Это позволит сэкономить место и время, необходимое для ведения журнала, когда это не нужно.

  3. Запись в журнал событий следует выполнять только тогда, когда вы не можете записать в файл.

1 голос
/ 23 ноября 2010

Попросите администраторов своих клиентов или техподдержку, где они хотят разместить журналы.

Что касается поточной безопасности, да, EntLib является поточной безопасности.

0 голосов
/ 01 декабря 2010

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

Для внешних клиентов я использую веб-сервис async, чтобы сообщить об ошибке. (Я проглатываю все ожидания, чтобы ошибки журналирования не влияли на клиента - не то, что у меня было, используя log4net и L4NDash).

0 голосов
/ 01 декабря 2010

Я бы порекомендовал Event-Viewer, но в тех случаях, когда у вас нет прав администратора или определенного доступа к Event-Viewer, лучшим вариантом будет вход в обычные файлы.

...