In molte delle applicazioni della nostra azienda, utilizziamo un logger personalizzato. È abbastanza robusto, anche se potremmo sostituirlo con qualcosa come NLog in futuro. Una delle attività del logger consiste nel registrare tutte le eccezioni incontrate nell'applicazione.
Una preoccupazione che ho sempre avuto è che la gestione delle eccezioni all'interno del logger consente un errore silenzioso. Cioè, se il log non è scritto per una determinata eccezione (a causa di un errore nel logger), come dovrei gestirlo e (in qualche modo) registrare l'eccezione nel logger stesso ?
Diciamo che la funzione WriteLog genera un'eccezione. Dovrei provare a chiamare la funzione un certo numero di volte o fino a quando l'eccezione non viene lanciata? Dovrei provare a scrivere l'eccezione generata con il logger (che probabilmente produrrebbe solo eccezioni fino in fondo ...)? Ho avuto la fortuna di non incontrare questa situazione tranne quando stavamo implementando il logger personalizzato. D'altra parte, non ho modo di sapere al momento se il logger non è riuscito a registrare le eccezioni dell'applicazione (a causa delle proprie eccezioni).
Ho provato a cercare online e su alcuni siti SE, ma finora è stato infruttuoso dal momento che tutti i post riguardano gli errori in un logger (ma non le potenziali eccezioni e come registrarli) o con eccezioni al di fuori del logger.