.net Core Worker Service Logging To File

4 min read Jun 03, 2024
.net Core Worker Service Logging To File

Enregistrement des journaux dans un fichier pour un service de travail .NET Core

Introduction

Les services de travail .NET Core sont une excellente option pour exécuter des tâches en arrière-plan ou des processus récurrents. Il est important de pouvoir surveiller ces services et de comprendre ce qui se passe en leur sein. L'enregistrement des journaux est un élément essentiel pour cela. Dans cet article, nous allons explorer comment enregistrer les journaux d'un service de travail .NET Core dans un fichier.

Configuration de l'enregistrement des journaux

La première étape consiste à configurer l'enregistrement des journaux dans votre service de travail .NET Core. Cela se fait généralement dans le fichier Program.cs.

using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

var builder = WebApplication.CreateBuilder(args);

// Configuration de l'enregistrement des journaux
builder.Services.AddLogging(logging =>
{
    logging.AddFile(options => 
    {
        options.LogDirectory = "logs";
        options.FileName = "service-worker-{Date}.txt";
        options.FileSizeLimitBytes = 1024 * 1024 * 5; // 5 Mo
        options.RollingInterval = RollingInterval.Day;
        options.RetainLogFiles = 30; // Conserver 30 fichiers journaux
    });
});

// Construction et exécution du service de travail
var app = builder.Build();
app.Run();

Ce code configure l'enregistrement des journaux dans un fichier avec les options suivantes:

  • LogDirectory: Le répertoire où les fichiers journaux seront stockés.
  • FileName: Le nom de fichier utilisé pour les fichiers journaux.
  • FileSizeLimitBytes: La taille maximale d'un fichier journal.
  • RollingInterval: Le délai entre la création de nouveaux fichiers journaux.
  • RetainLogFiles: Le nombre de fichiers journaux à conserver.

Écriture de journaux

Une fois que l'enregistrement des journaux est configuré, vous pouvez écrire des journaux depuis votre service de travail. Vous pouvez utiliser l'objet ILogger injecté dans votre classe de service.

public class MyWorker : BackgroundService
{
    private readonly ILogger _logger;

    public MyWorker(ILogger logger)
    {
        _logger = logger;
    }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        while (!stoppingToken.IsCancellationRequested)
        {
            // Votre logique de service de travail

            _logger.LogInformation("Tâche de service exécutée avec succès.");

            await Task.Delay(10000, stoppingToken); 
        }
    }
}

Ce code écrit un message de journal d'information dans le fichier journal. Vous pouvez utiliser d'autres niveaux de journalisation comme LogDebug, LogWarning, LogError, etc.

Conclusion

L'enregistrement des journaux est une pratique essentielle pour surveiller et déboguer les services de travail .NET Core. En configurant l'enregistrement des journaux dans un fichier, vous pouvez facilement suivre l'activité de votre service et identifier tout problème potentiel. N'hésitez pas à expérimenter les options de configuration pour répondre aux besoins de votre application.

Featured Posts