Большинство библиотек журналов, таких как log4net и Enterprise Library, выбирают проглатывать исключения, которые могут быть выброшены в процессе журналирования, чтобы предотвратить остановку приложения.Из-за этого эти библиотеки нельзя назвать «надежными» (согласно документации log4net).
По моему мнению, отсутствие регистрации события является серьезной ошибкой, и ее не следует скрывать.Хакеры могут злоупотреблять пропущенными сообщениями в журнале, чтобы скрыть свои следы, или, по крайней мере, затрудняет поиск основной причины проблемы.
Для меня это было одной из причин создания библиотеки журналирования под названием CuttingEdge.Logging .Поставщики журналов в CuttingEdge.Logging всегда выдают исключение, когда событие не может быть зарегистрировано.Сконфигурировав «запасного провайдера» для определенного регистратора, пользователи могут предотвратить образование пузырей в стеке вызовов исключающими ситуациями и позволить резервному провайдеру зарегистрировать исходное сообщение и исключение, выданное сбойным регистратором.Сами резервные поставщики могут также иметь настроенный резервный поставщик. Этот механизм делает очень маловероятным, что исключения не будут регистрироваться при использовании CuttingEdge.Logging.