typestar

Contexto de log en C#

Empuja una propiedad una vez; cada evento del ámbito la lleva.

using Serilog;
using Serilog.Context;

Log.Logger = new LoggerConfiguration()
    .Enrich.FromLogContext()
    .WriteTo.Console(outputTemplate:
        "[{Level:u3}] {RequestId} {Message:lj}{NewLine}")
    .CreateLogger();

// todo lo registrado en el ámbito lleva la propiedad insertada
using (LogContext.PushProperty("RequestId", "req-7f3a"))
{
    Log.Information("auth ok for {User}", "ada");
    Log.Information("order saved");
}
Log.CloseAndFlush();

Cómo funciona

  1. Enrich.FromLogContext suscribe el pipeline a las propiedades ambientales.
  2. PushProperty limita RequestId al bloque using.
  3. La plantilla de salida decide dónde aparecen las propiedades empujadas.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
16
Caracteres a escribir
427
Tokens
70
Ritmo de tres estrellas
85 tpm

Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 49 segundos.

Escribe este fragmento

Paso 2 de 2 en Logging con Serilog; paso 7 de 16 en El ecosistema abierto.

← Anterior Siguiente →