В некоторых приложениях нашей компании мы используем собственный регистратор. Он достаточно надежный, хотя в будущем мы можем заменить его чем-то вроде NLog. Одна из задач регистратора - регистрировать любые исключения, встречающиеся в приложении.
Я всегда беспокоился о том, что обработка исключений в логгере допускает тихий сбой. То есть, если журнал не записан для данного исключения (из-за ошибки в регистраторе), как мне его обработать и (каким-то образом) зарегистрировать исключение в самом регистраторе ?
Допустим, функция WriteLog генерирует исключение. Должен ли я пытаться вызывать функцию несколько раз или до тех пор, пока не сработает исключение? Должен ли я попытаться записать выброшенное исключение с помощью регистратора (что, скорее всего, приведет к исключениям полностью ...)? Мне повезло, что я не столкнулся с такой ситуацией, за исключением случаев, когда мы впервые внедрили собственный регистратор. С другой стороны, на данный момент у меня нет возможности узнать, не удалось ли регистратору регистрировать исключения приложения (из-за его собственных исключений).
Я попытался выполнить поиск в Интернете и на некоторых сайтах SE, но до сих пор это было бесплодно, поскольку все сообщения касаются ошибок в регистраторе (но не потенциальных исключений и способов их регистрации) или исключений вне регистратора.
stderr
что ваш выходной носитель вышел из строя или произошло «невозможное».