Необходимо различать ведение журнала и трассировку. В то время как строки немного размыты, я склонен думать о регистрации как о «не разработчике». Такие вещи, как необработанные исключения, поврежденные файлы и т. Д. Это определенно не нормально и должно быть очень редкой проблемой.
Отслеживание - это то, что интересует разработчика. Трассировки стека, параметры метода, что веб-сервер вернул HTTP-статус 401.3 и т. Д. Они действительно шумные и могут за короткое время произвести много данных. , Обычно у нас есть разные уровни трассировки, чтобы уменьшить шум.
Для входа в клиентское приложение я думаю, что журналы событий - это путь (я должен был бы перепроверить, но я думаю, что ASP.NET Health Monitoring также может записывать в журнал событий). Обычные пользователи имеют права на запись в журнал событий, если у вас есть программа установки (которая в любом случае установлена администратором) для создания источника события.
Большинство ваших преимуществ для ведения журнала Sql, хотя и имеют значение true, не применимы к ведению журнала событий:
- Может обрабатывать большие объемы данных:
У вас действительно большие объемы необработанных исключений или других сбоев высокого уровня?
- Может обрабатывать быстрые вставки томов исключений: Одно необработанное исключение должно привести к остановке вашего приложения - оно изначально ограничено по скорости. Другие интересные события, не относящиеся к разработчикам, должны быть агрегированы аналогичным образом.
- Очень настраиваемый: Сообщение в журнале событий в значительной степени свободный текст. Если вам нужна дополнительная информация, просто укажите на текстовый или структурированный XML или журнал двоичных файлов
- Немного проще создавать отчеты / уведомления из хранилища SQL: Отчеты встроены с помощью средства просмотра журнала событий, и системы уведомлений либо присущи - из-за сбоя приложения - либо смешаны с другими действительно важными уведомления - есть небольшое оправдание для пропуска сообщения журнала событий. Для корпоративных или других сетевых приложений существует тысяча и 1 другое приложение, которое уже отбирает журналы событий на наличие ошибок ... есть вероятность, что ваш системный администратор уже использует его.
Для трассировки , частью которой являются конкретные детали исключения или ошибки, мне нравятся плоские файлы - они просты в обслуживании, удобны для поиска и могут быть импортированы в Sql для анализ, если мне нравится.
90% времени, они вам не нужны, и они установлены на WARN или ERROR. Но когда вы установите для них значение INFO или DEBUG, вы сгенерируете ton данных. СУБД имеет много накладных расходов - на производительность (ACID, параллелизм и т. Д.), Хранение (журналы транзакций, диски SCSI RAID-5 и т. Д.) И администрирование (резервное копирование, обслуживание сервера и т. Д.) - все это не требуется для журналов трассировки.