Création d'un service de travail .NET 6 avec Serilog pour la journalisation
Introduction
Les services de travail .NET 6 sont une excellente option pour exécuter des tâches en arrière-plan dans une application .NET. Ils sont légers et peuvent être facilement déployés sur des systèmes d'exploitation différents. Cependant, pour une gestion et une détection des erreurs efficaces, une journalisation robuste est essentielle. Serilog est une bibliothèque de journalisation populaire pour .NET qui offre une flexibilité et des fonctionnalités de journalisation avancées.
Dans cet article, nous allons vous montrer comment créer un service de travail .NET 6 avec Serilog pour la journalisation. Nous allons aborder les étapes de configuration de Serilog, d'écriture de messages de journalisation et de la configuration de la sortie de journalisation vers des destinations telles que le fichier ou la console.
Configuration de Serilog
-
Installation des packages NuGet
Tout d'abord, installez les packages NuGet suivants dans votre projet de service de travail :
Install-Package Serilog Install-Package Serilog.Sinks.File Install-Package Serilog.Sinks.Console
-
Création de la configuration de journalisation
Dans la méthode
CreateHostBuilder
de votre programme principal, configurez Serilog en utilisant le code suivant :public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseSerilog((hostingContext, loggerConfiguration) => loggerConfiguration .WriteTo.Console() .WriteTo.File("logs/log-.txt", rollingInterval: RollingInterval.Day) .Enrich.FromLogContext() );
Ce code configure Serilog pour écrire des messages de journalisation sur la console et dans un fichier nommé
log-.txt
dans le répertoirelogs
. Il utilise égalementEnrich.FromLogContext
pour ajouter des informations contextuelles aux messages de journalisation, telles que le nom de l'hôte, le nom du thread et le nom de la classe.
Écriture de messages de journalisation
Maintenant que Serilog est configuré, vous pouvez écrire des messages de journalisation à partir de votre code de service de travail. Utilisez l'objet ILogger
qui est injecté dans votre service pour écrire des messages de journalisation.
public class MyWorker : BackgroundService
{
private readonly ILogger _logger;
public MyWorker(ILogger logger)
{
_logger = logger;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
_logger.LogInformation("Travail en cours...");
// Code pour exécuter votre tâche
await Task.Delay(1000, stoppingToken);
}
}
}
Dans cet exemple, nous écrivons un message de journalisation LogInformation
dans la méthode ExecuteAsync
de notre service de travail. Serilog enregistre ce message dans les destinations configurées, à savoir la console et le fichier.
Conclusion
En utilisant Serilog avec votre service de travail .NET 6, vous pouvez obtenir une journalisation robuste et détaillée. Cela vous permet de surveiller votre application, de déboguer les problèmes et de mieux comprendre son comportement. Serilog est une bibliothèque flexible et puissante qui peut être configurée pour répondre à vos besoins spécifiques de journalisation.