Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

596
Vistas
Serilog en .Net: Agregar un enriquecedor personalizado a través de appSettings.json no funciona

Usando serilog, estoy tratando de agregar un enriquecedor personalizado a través de appSettings.json sin éxito.

Fui exactamente por el libro, siguiendo la documentación. También seguí una introducción no oficial como estahttps://www.ctrlaltdan.com/2018/08/14/custom-serilog-enrichers/

La introducción anterior funciona bien con los enriquecedores de nuggets (como Serilog.Enrichers.Environment, Serilog.Enrichers.Thread, etc.) pero no funciona con mi enriquecedor personalizado. Aquí está el código relevante:

 public class ClassNameEnricher: ILogEventEnricher { private string GetClassName() { StackTrace trace = new StackTrace(); bool foundFrame = false; int currentFrame = 0; while (!foundFrame) { if (trace.GetFrame(currentFrame).GetMethod().ReflectedType.FullName == typeof(Logger).FullName) { foundFrame = true; } currentFrame++; } return trace.GetFrame(currentFrame).GetMethod().ReflectedType.FullName; } public virtual void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory) { LogEventProperty className = propertyFactory.CreateProperty("ClassName", GetClassName()); logEvent.AddPropertyIfAbsent(className); } } public static class LoggerEnrichmentConfigurationExtensions { public static LoggerConfiguration WithClassName(this LoggerEnrichmentConfiguration enrich) { return enrich.With<ClassNameEnricher>(); } }

y la configuración:

ingrese la descripción de la imagen aquí

Notaré que agregar mi enrihcer en el código funciona bien. ¿Cualquier sugerencia?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Tienes que incluir el nombre de tu ensamblado en la sección "Using" .

De la documentación de Serilog

La sección de uso contiene una lista de ensamblajes en los que residen los métodos de configuración (WriteTo.File(), Enrich.WithThreadId()).

Observe en ese artículo al que se refiere, que la configuración de ensamblaje está presente:

 "Using": [ "Example.Assembly.Name" ]
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda