.net 6 Worker Service Serilog

4 min read Jun 03, 2024
.net 6 Worker Service Serilog

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

  1. 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
    
  2. 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épertoire logs. Il utilise également Enrich.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.

Related Post