ASP.NET Core 5 - Structured Logging con Azure & Serilog Come implementare un meccanismo di logging strutturato in una applicazione ASP.NET Core 5 con Azure Application Insights e Serilog

ASP.NET Core 5 - Structured Logging con Azure & Serilog

In questo articolo presentiamo una serie di approfondimenti che illustrano come implementare un meccanismo di structured logging (registrazione strutturata degli eventi) per una tipica applicazione web realizzata con ASP.NET Core 5 e C# facendo uso di due strumenti che consentono questa tecnica: Azure Application Insights, il servizio di monitoraggio fornito da MS Azure, e Serilog, una libreria open-source di registrazione diagnostica per applicazioni .NET disponibile su NuGet che consente di memorizzare i suddetti log sui database management system più diffusi, tra cui SQL Server e MariaDB.

Gran parte degli articoli conterranno degli esempi di codice sorgente tratti dal seguente repository GitHub, che contiene la versione integrale dei due bot di esempio che saranno via via realizzati e e illustrati nel loro funzionamento:

Argomenti trattati

Questo è l’elenco degli argomenti che affronteremo, avendo cura di approfondire ciascuno di essi in un articolo dedicato:

  • Inizieremo con una panoramica sulla definizione e concetti di base del logging applicativo: cosa si intende per application logging e come mai è diventata un’esigenza sempre più importante negli ultimi anni.
  • Ci sposteremo quindi all’interno del codice sorgente di una tipica applicazione ASP.NET Core, nella quale vedremo in che modo il sistema di logging messo a disposizione dal framework può aiutarci a comprendere le attività che vengono svolte, diciamo così, dietro le quinte dal sistema. Analizzeremo dunque le caratteristiche saliente delle varie tipologie di logging messe a disposizione da .NET 5 attraverso i Logging Provider predefiniti.
  • L'analisi degli Logging Provider predefiniti ci consentirà di aprire una riflessione sulle importanti differenze tra log non strutturati e log strutturati, nel corso della quale proveremo a mettere a fuoco le limitazioni dei primi e i vantaggi dei secondi.
  • Infine, vedremo come è possibile massimizzare i vantaggi e ridurre gli svantaggi implementando tecniche di registrazione dei log in modalità strutturata, con l’aiuto di librerie e servizi nativi e di terze parti. Nello specifico, vedremo come è possibile registrare i nostri log applicativi utilizzando i seguenti provider:
    • Application Insights, il servizio di gestione e monitoraggio delle prestazioni dell'applicazione fornito da Microsoft all'interno della piattaforma Azure.
    • Serilog, una libreria open-source di terze parti che consente la memorizzazione dei log applicativi all'interno di un DBMS locale o remoto (SQL Server, MariaDB, etc).

Seguendo con attenzione questa serie di approfondimenti sarà possibile acquisire le capacità necessarie per implementare queste tecniche di logging su qualsiasi applicazione ASP.NET Core 5.

Buona lettura!

Articoli correlati

  1. Indice degli argomenti
  2. ASP.NET Core 5 Application Logging: concetti di base
  3. Application Logging in .NET 5: Logging Provider predefiniti
  4. Differenze tra Log strutturati e non strutturati
  5. Structured Logging con Azure Application Insights
  6. Structured Logging su DBMS con Serilog
Vuoi saperne di più sullo sviluppo di applicationi web in tecnologia ASP.NET Core 5? Scrivici per comunicarci le tue esigenze o richiedi un preventivo gratuito e senza impegno per realizzare il tuo progetto!
Fork me on GitHub

About Ryan

IT Project Manager, Web Interface Architect e Lead Developer di numerosi siti e servizi web ad alto traffico in Italia e in Europa. Dal 2010 si occupa anche della progettazione di App e giochi per dispositivi Android, iOS e Mobile Phone per conto di numerose società italiane. Microsoft MVP for Development Technologies dal 2018.

View all posts by Ryan

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


The reCAPTCHA verification period has expired. Please reload the page.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.