.net 6 Api Logging

5 min read Jun 03, 2024
.net 6 Api Logging

Enregistrement des journaux dans une API .NET 6

Le journalisation est un élément essentiel du développement d'applications .NET 6, en particulier pour les API. Un bon système de journalisation vous permet de suivre les actions de votre application, de diagnostiquer les erreurs et d'améliorer les performances. Dans cet article, nous explorerons les meilleures pratiques pour l'enregistrement des journaux dans une API .NET 6.

Introduction à l'enregistrement des journaux

L'enregistrement des journaux consiste à enregistrer des informations sur l'exécution de votre application. Ces informations peuvent inclure des événements, des erreurs, des avertissements et des informations de débogage. En enregistrant ces informations, vous pouvez facilement analyser le comportement de votre application et identifier les problèmes potentiels.

Le système de journalisation intégré de .NET 6

.NET 6 fournit un système de journalisation intégré flexible et puissant. Il utilise un modèle d'abstraction, vous permettant de choisir votre fournisseur de journalisation préféré.

Les fournisseurs de journalisation populaires incluent :

  • Console: Affiche les journaux sur la console.
  • File: Enregistre les journaux dans des fichiers.
  • EventLog: Enregistre les journaux dans le journal des événements Windows.
  • Serilog: Un framework de journalisation puissant et flexible offrant des fonctionnalités avancées.

Configuration du journalisation dans une API .NET 6

Pour configurer le journalisation dans une API .NET 6, vous devez utiliser la classe ILogger fournie par le système de journalisation intégré. Voici un exemple de base pour enregistrer un message dans le journal :

using Microsoft.Extensions.Logging;

public class MyController : ControllerBase
{
    private readonly ILogger _logger;

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

    [HttpGet]
    public IActionResult Get()
    {
        _logger.LogInformation("Requête GET reçue.");
        return Ok();
    }
}

Configuration du fournisseur de journalisation

Pour spécifier le fournisseur de journalisation à utiliser, vous devez modifier le fichier Program.cs dans votre projet API .NET 6. Par exemple, pour utiliser le fournisseur de journalisation de fichier :

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

var builder = WebApplication.CreateBuilder(args);

builder.Logging.ClearProviders();
builder.Logging.AddFile(Path.Combine(builder.Environment.ContentRootPath, "Logs", "logs.txt"));

var app = builder.Build();

// ...

Enregistrement des journaux structurés

Le journalisation structurée est une méthode recommandée pour enregistrer des données dans un format lisible par la machine. Elle vous permet d'analyser les journaux plus facilement et d'utiliser des outils de journalisation avancés.

Pour enregistrer des journaux structurés avec Serilog, vous pouvez utiliser le code suivant :

using Serilog;
using Serilog.Formatting.Json;

var builder = WebApplication.CreateBuilder(args);

builder.Logging.ClearProviders();
builder.Host.UseSerilog((ctx, lc) => lc
    .WriteTo.Console()
    .WriteTo.File(Path.Combine(ctx.HostingEnvironment.ContentRootPath, "Logs", "logs.json"),
        outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}",
        rollingInterval: RollingInterval.Day,
        rollOnFileSizeLimit: true,
        fileSizeLimitBytes: 10 * 1024 * 1024)
    .WriteTo.Seq("http://localhost:5341"));

var app = builder.Build();

// ...

Conclusion

L'enregistrement des journaux est une partie essentielle du développement d'une API .NET 6 stable et fiable. Le système de journalisation intégré de .NET 6 vous offre une grande flexibilité pour choisir votre fournisseur de journalisation préféré et configurer les niveaux de journalisation en fonction de vos besoins. N'oubliez pas d'utiliser la journalisation structurée pour faciliter l'analyse et le traitement des journaux.

Related Post