Intégration du sink Serilog

Envoyez des logs structurés depuis vos applications .NET directement vers Radianz

Aperçu

Qu'est-ce que le sink Serilog ?

Le package NuGet Serilog.Sinks.Radianz est un sink Serilog qui envoie les événements de log structurés directement vers la plateforme Radianz. Les logs sont mis en lots et envoyés de manière asynchrone avec réessai et backoff exponentiel — zéro impact sur les performances de votre application. Supporte les transports HTTP et Azure Service Bus.

Comment ça fonctionne
Votre App .NET
Sink Serilog
Radianz
Mise en lots asynchrone (taille et période configurables)
Réessai avec backoff exponentiel et jitter (Polly)
Logging structuré complet avec propriétés et scopes
Transports HTTP et Azure Service Bus
Multi-cible : .NET 8 et .NET 10
Zéro impact sur les performances de l'application

Installation

Installez le package NuGet depuis nuget.org

Étape 1 — Installer le package

Ajoutez le package NuGet Serilog.Sinks.Radianz à votre projet :

bash
dotnet add package Serilog.Sinks.Radianz
CompatibilitéLe package supporte .NET 8 et .NET 10 (multi-cible). Il dépend de Serilog 4.x et utilise Polly pour les politiques de réessai.

Configuration

Configurez le sink avec vos identifiants Radianz

Démarrage rapide

Configurez Serilog avec le sink HTTP Radianz. Remplacez clientId et apiKey par vos identifiants réels :

C#
using Serilog;
using Serilog.Sinks.Radianz.Extensions;

Log.Logger = new LoggerConfiguration()
    .WriteTo.RadianzHttp(
        clientId: "your-client-id",
        apiKey: "your-api-key")
    .CreateLogger();

Log.Information("Hello from {AppName}!", "MyApp");
Intégration ASP.NET Core

Pour les applications ASP.NET Core, utilisez l'intégration du host builder pour lire les identifiants depuis la configuration :

C#
builder.Host.UseSerilog((ctx, lc) => lc
    .WriteTo.RadianzHttp(
        clientId: ctx.Configuration["Radianz:ClientId"],
        apiKey: ctx.Configuration["Radianz:ApiKey"])
    .WriteTo.Console());
Où trouver mes identifiants ?Allez dans Elmah > Log API Tokens dans le tableau de bord Radianz. Votre clientId est le Client ID de l'application et votre apiKey est le jeton API.
Options de configuration
Option Type Par défaut Description
clientIdstring—Client ID pour l'authentification (requis)
apiKeystring—Clé API pour l'authentification (requis)
baseUrlstringhttps://radianz.ioURL de base de l'instance Radianz
restrictedToMinimumLevelLogEventLevelVerboseNiveau de log minimum à envoyer
batchSizeLimitint50Nombre maximum d'événements par lot
batchPeriodTimeSpan5sTemps maximum avant de vider le lot
queueLimitint10000Nombre maximum d'événements en file avant suppression

Configuration avancée

Ajustez finement les options de mise en lots, réessai et transport

Mise en lots personnalisée et niveau minimum

Ajustez la taille du lot, la période et le niveau de log minimum pour contrôler le volume et la fréquence :

C#
.WriteTo.RadianzHttp(
    clientId: "your-client-id",
    apiKey: "your-api-key",
    restrictedToMinimumLevel: LogEventLevel.Warning,
    batchSizeLimit: 100,
    batchPeriod: TimeSpan.FromSeconds(10))
Options complètes via Action

Pour un contrôle complet sur tous les paramètres, utilisez la configuration par action :

C#
.WriteTo.Radianz(options =>
{
    options.TransportType = RadianzTransportType.Http;
    options.HttpOptions = new HttpTransportOptions
    {
        ClientId = "your-client-id",
        ApiKey   = "your-api-key"
    };
    options.Batching.BatchSizeLimit = 100;
    options.Retry.MaxRetryAttempts  = 5;
})
Transport Azure Service Bus

Au lieu d'envoyer les logs directement par HTTP, vous pouvez les acheminer via Azure Service Bus pour une fiabilité accrue :

C#
.WriteTo.RadianzMessageQueue(
    connectionString: "Endpoint=sb://your-ns.servicebus.windows.net/;...",
    queueName: "radianz-logs")
Quand utiliser le Service Bus ?Utilisez le transport Azure Service Bus quand vous avez besoin de livraison garantie, que votre application s'exécute dans Azure, ou que vous souhaitez découpler l'ingestion des logs de la disponibilité du backend Radianz.