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
Enrich.FromLogContextsuscribe el pipeline a las propiedades ambientales.PushPropertylimitaRequestIdal bloque using.- La plantilla de salida decide dónde aparecen las propiedades empujadas.
Palabras clave y builtins usados aquí
newusing
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.
Paso 2 de 2 en Logging con Serilog; paso 7 de 16 en El ecosistema abierto.