Una delle caratteristiche di Serilog è la possibilità di poter essere integrato con una serie di plugin, più propriamente chiamati Sink.
In particolare in questo post, vedremo come sia possibile l’integrazione con Azure Blob Storage.
Per configurare Serilog per la scrittura dei log su Azure Blob Storage in C#, i passaggi sono:
- Installare il pacchetto
Serilog.Sinks.AzureBlobStoragetramite NuGet Package Manager. Puoi farlo eseguendo il comando seguente nella NuGet Package Manager Console o utilizzando l’interfaccia grafica di Visual Studio:
Install-Package Serilog.Sinks.AzureBlobStorage
- Aggiungere le dichiarazioni
usingnecessarie all’inizio del file C#:
using Serilog; using Serilog.Sinks.AzureBlobStorage;
- Configurare Serilog con il sink Azure Blob Storage. Dovrai specificare la stringa di connessione, il nome del contenitore e il formato del percorso per i file di log. Ecco un esempio di configurazione:
var connectionString = "la_tua_stringa_di_connessione";
var containerName = "il_tuo_nome_contenitore";
var pathFormat = "logs/{yyyy}/{MM}/{dd}/log.txt";
Log.Logger = new LoggerConfiguration()
.WriteTo.AzureBlobStorage(connectionString, containerName, pathFormat)
.CreateLogger();Sostituiamo "la_tua_stringa_di_connessione" con la stringa di connessione dell’account Azure Blob Storage e "il_tuo_nome_contenitore" con il nome del contenitore in cui vogliamo memorizzare i file di log. pathFormat specifica il formato del percorso del file di log e può includere segnaposto per i componenti della data.
- Registrare i messaggi utilizzando Serilog. Ad esempio:
Log.Information("Questo è un messaggio informativo.");
Log.Error("Si è verificato un errore: {MessaggioErrore}", messaggioErrore);Si possono utilizzre vari livelli di log come Information, Warning, Error, ecc. Puoi anche includere proprietà aggiuntive nei messaggi di log.
- Infine, assicurarsi di chiudere e svuotare il logger quando l’applicazione viene arrestata per garantire che tutti gli eventi di log in sospeso vengano scritti su Azure Blob Storage:
Log.CloseAndFlush();
Con questi passaggi, Serilog è configurato per la scrittura dei log su Azure Blob Storage utilizzando il pacchetto Serilog.Sinks.AzureBlobStorage.