Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

591
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!