Quando si verifica un'eccezione in produzione, vogliamo avere a disposizione un sistema per loggarle e per poter così diagnisticarne la causa. Per questo scopo, ASP.NET Web API utilizza un servizio denominato IExceptionLogger.
Possiamo realizzare il nostro logger personalizzato semplicemente creando una classe che implementi questa interfaccia:
public class MyExceptionLogger : IExceptionLogger { public async Task LogAsync(ExceptionLoggerContext context, CancellationToken cancellationToken) { // do something here... Trace.TraceError(context.Exception.ToString()); } }
L'esempio in alto è banale, e si limita a utilizzare il Trace di sistema per tracciare i dettagli dell'eccezione. Ovviamente, però, possiamo realizzare un sistema complesso quanto vogliamo, che magari sfrutti framework più evoluti come NLog o simili.
L'oggetto ExceptionLoggerContext che riceviamo come parametro, contiene una serie di dettagli relativi al contesto in cui si è verificato l'errore, tra cui l'Exception sollevata, l'eventuale handler definito per gestirla, il contesto della richiesta, ecc.
Per attivare il nostro logger, dobbiamo ricordarci di impostarlo in fase di startup tra i Services della configurazione di ASP.NET Web API, nel file App_Start\WebApiConfig.cs:
public static void Register(HttpConfiguration config) { ... config.Services.Add(typeof(IExceptionLogger), new MyExceptionLogger()); ... }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare un'applicazione React e configurare Tailwind CSS
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Creare alias per tipi generici e tuple in C#
Hosting di componenti WebAssembly in un'applicazione Blazor static
Creazione di componenti personalizzati in React.js con Tailwind CSS
Gestire domini wildcard in Azure Container Apps
Sviluppare un'interfaccia utente in React con Tailwind CSS e Preline UI
Le novità di Angular: i miglioramenti alla CLI
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Usare il colore CSS per migliorare lo stile della pagina
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel