В настоящее время я изучаю различные возможности ведения журнала для проектов .net, и я не могу решить между функциями System.Diagnostics.Debug/Trace и сторонними библиотеками, такими как log4net, MS Enterprise Library, NLog и т.д.
На данный момент я это выяснил:
- System.Diagnostics довольно сложно настроить и использовать, поскольку вам нужно явно настроить все слушатели, фильтры, источники и т.д. Кажется, что ему также не хватает массовой вставки в БД (подумайте о написании 100 000 журналов записи, каждая со своей Вставкой, ужасающая, не так ли?). Но некоторые люди считают "здоровыми" не использовать дополнительные библиотеки для такой "рудиментарной" вещи, как ведение журнала (конечно, в какой-то момент имеет смысл уменьшить количество сторонних библиотек, на которые опирается ваш проект, но не в этот раз, я полагаю)
- Третьи стороны намного эффективнее, часто быстрее, гораздо проще в использовании, но конфигурация иногда может быть также болезненной, и зачастую эти библиотеки менее надежны (например, таинственная внезапная остановка ведения журнала EntLib и т.д.).
- как насчет Common.Logging? стоит ли пытаться (поскольку, как я слышал, он предлагает подключать различные фреймворки регистрации и действовать как интерфейс между приложением и желаемой библиотекой)?
Я был бы очень благодарен, если бы кто-нибудь мог указать мне в правильном направлении или исправить (или добавить что-то) на мое сравнение, данное выше! Может быть, если вы побудите меня использовать третьи стороны, вы можете посоветовать какой-то конкретный (учитывая, что нашим приложениям, скорее всего, не понадобятся какие-либо причудливые вещи, такие как UDP, скользящие файлы и т.д. - простой файл, электронная почта, DB и Журнал событий)?
Спасибо заранее!