Где я должен хранить журналы ошибок? - PullRequest
3 голосов
/ 03 февраля 2010

Я создаю веб-приложение на C # / Asp.Net (FW 2.0), и мне было интересно, где мне хранить записи в журналах ошибок.

Я мог бы записать это в файл на сервере, но мне это не кажется правильным. Это было бы несовместимо с идеей базы данных .

Другой очевидный ответ находится в базе данных, но что случилось, если я не имею никакого отношения к базе данных. Если клиент получит ошибку соединения с базой данных, что мне делать (поскольку сервер и база данных явно не находятся на одном компьютере)?

Ваши предложения приветствуются.

Чем вы

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

Ответы [ 8 ]

6 голосов
/ 03 февраля 2010

Журнал системных событий с соответствующим источником событий (канал регистрации)

http://support.microsoft.com/kb/307024

3 голосов
/ 03 февраля 2010

По сравнению с регистрацией в БД log4net или nlog не являются "большими фреймворками".Сохраняйте это простым, и эти два обеспечивают именно то, что вам нужно, с очень небольшим периодом наращивания.

2 голосов
/ 03 февраля 2010

Наличие запасного механизма - очень верный сценарий.Регистрация в журнале событий Windows часто не практична, потому что ее нелегко анализировать в журналах, как в реляционных базах данных.Но позволить регистрировать события в журнале событий при сбое вашей базы данных не является роскошным вариантом IMO.

Этот сценарий является одной из причин, по которой я построил каркас ведения журнала (я не буду ссылаться на него, так же как выпросил).Он поддерживает концепцию, называемую «fallbackProvider», которая позволяет регистрировать событие на альтернативном регистраторе в случае сбоя основного регистратора.Когда вы пишете свой собственный механизм ведения журнала, вы можете принять такую ​​концепцию.

Удачи.

1 голос
/ 03 февраля 2010

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

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

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

0 голосов
/ 15 февраля 2010

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

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

0 голосов
/ 03 февраля 2010

вход в базу данных и xml в качестве запасного варианта. Учетной записи asp.net потребуются разрешения на регистрацию ошибок для программы просмотра событий, что может быть не очень хорошей идеей на веб-сервере, если это не является абсолютно непростой задачей.

0 голосов
/ 03 февраля 2010

Полагаю, у вас действительно есть три варианта:

  1. Используйте небольшую базу данных для хранения всех журналов ошибок на локальном компьютере, используя что-то более легкое, например SQLlite или SQLServer Compact.
  2. Сохраните его в плоский файл (xml или что у вас есть), где вы сможете просмотреть его.
  3. Отправьте прямо в журнал событий. (Я бы, наверное, сделал это).
0 голосов
/ 03 февраля 2010

-Системная программа просмотра событий
-вы можете кешировать свою ошибку в локальный и легкий файл db (может быть SqLite / Sql Compact), затем, когда соединение доступно, вы отправляете его на сервер

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