Kapan Serilog Custom Enrichers dieksekusi selama pipeline Web API?

Saya perhatikan bahwa metode public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory) dipanggil satu atau dua kali tergantung pada apakah saya memiliki peristiwa log atau tidak (yaitu, Log.Debug(), Log .Peringatan() dll.). Jika saya memiliki peristiwa log, itu disebut dua kali - baik pada Permintaan Http dan pemrosesan respons HTTP. Jika saya tidak memiliki peristiwa log, itu hanya dipanggil sekali, yaitu selama pemrosesan Respons HTTP.

0
Nick Rozzi 12 Maret 2020, 18:33

1 menjawab

Jawaban Terbaik

Serilog Enrichers dijalankan setiap kali panggilan dibuat untuk menulis peristiwa log ke log (selama jenis log peristiwa diaktifkan).

Misalnya

Log.Information("hey1");
Log.Warning("hey2");
Log.Debug("hey3");

Akan menulis 3 peristiwa log ke log, yang akan menyebabkan semua pengaya yang dikonfigurasi untuk dipanggil 3 kali, satu untuk setiap peristiwa, untuk memperkaya masing-masing.

Tentu saja, jika Anda memiliki Serilog yang terhubung ke pipa permintaan ASP .NET, pesan log ASP .NET akan diteruskan ke Serilog, yang juga akan menyebabkan pengaya dipanggil setiap untuk setiap genap yang ditulis...

0
C. Augusto Proiete 12 Maret 2020, 20:40