Em várias aplicações da nossa empresa, usamos um criador de logs personalizado. É bastante robusto, embora possamos substituí-lo por algo como NLog no futuro. Uma das tarefas do criador de logs é registrar quaisquer exceções encontradas no aplicativo.
Uma preocupação que sempre tive é que o tratamento de exceções no criador de logs permite uma falha silenciosa. Ou seja, se o log não for gravado para uma determinada exceção (devido a um erro no criador de logs), como devo lidar com isso e (de alguma forma) registrar a exceção no próprio criador de logs ?
Digamos que a função WriteLog lança uma exceção. Devo tentar chamar a função várias vezes ou até que a exceção não seja lançada? Devo tentar escrever a exceção lançada com o criador de logs (o que provavelmente resultaria em exceções até o fim ...)? Tive a sorte de não encontrar essa situação, exceto quando estávamos implementando o criador de logs personalizado. Por outro lado, não tenho como saber no momento se o criador de logs falhou ao registrar exceções de aplicativos (devido a suas próprias exceções).
Eu tentei pesquisar on-line e em alguns sites SE, mas até agora tem sido infrutífero, pois todas as postagens lidam com erros em um criador de logs (mas não com possíveis exceções e como registrá-los) ou com exceções fora do criador de logs.
stderr
que a mídia de saída falhou ou que o "impossível" aconteceu.