Per diagnosticare o monitorare lo stato del nostro applicativo ricorriamo spesso all'utilizzo di istruzioni di logging che forniscono dettagli sul funzionamento del nostro codice: input, logiche e output. Ci sono molti framework per farlo; partendo da System.Diagnostics già incluso nel .NET Framework, possiamo usare log4net, NLog o Serilog, tra i più famosi. Ognuno di questi dispone di appender, sink o output che sostanzialmente scrivono il log da qualche parte.
Se usiamo Application Insights per monitorare la nostra applicazione diventa senz'altro utile vedere queste informazioni personalizzate insieme alle altre collezionate dal motore. In questo modo, in caso di errori, per esempio, potremmo vedere oltre ai dettagli della richiesta e dell'errore, anche le fasi che sono state coinvolte, dandoci un'idea più chiara di ciò che è successo.
Per farlo dobbiamo utilizzare i pacchetti NuGet disponibili a seconda del sistema di logging che stiamo usando.

L'installazione modifica in autonomia i web.config, impostando la libreria come tipologia di output. Non sono necessari altri passi e possiamo procedere alla pubblicazione dell'applicazione. Se stiamo utilizzando, invece, una libreria di logging non prevista da Application Insights, possiamo sfruttare che molto spesso queste scrivono anche mediante System.Diagnostics.Trace, permettendoci quindi di usare il pacchetto NuGet con id Microsoft.ApplicationInsights.TraceListener.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Testare l'invio dei messaggi con Event Hubs Data Explorer
Creare una custom property in GitHub
Creare una libreria CSS universale: Immagini
Utilizzare WhenEach per processare i risultati di una lista di task
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Utilizzare Azure Cosmos DB con i vettori
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Anonimizzare i dati sensibili nei log di Azure Front Door
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Utilizzare DeepSeek R1 con Azure AI