BuildingBlocks.Logging.Serilog, uygulamayı Serilog’a bağlayan iki ince extension sağlar: host’u Serilog’a yönlendirme ve HTTP request logging middleware’i. Asıl sink/enrich/filter yapılandırması appsettings.json’daki Serilog bölümünden okunur — kod tarafı minimaldir.
Metrik/tracing tarafı (OpenTelemetry, Prometheus) ayrıdır; bkz. Monitoring ve Observability.
Extension’lar
| Metot | Tip | Amaç |
|---|---|---|
UseToSerilog() | IHostBuilder | Host’u Serilog’a yönlendirir (hostBuilder.UseSerilog()) |
UseSerilogRequestLoggingMiddleware() | IApplicationBuilder | HTTP request logging + LogEnricher.EnrichFromRequest |
LogEnricher.EnrichFromRequest her istek log’una şu alanları ekler:
| Alan | Kaynak |
|---|---|
ClientIP | httpContext.Connection.RemoteIpAddress |
UserAgent | User-Agent header |
Environment | ASPNETCORE_ENVIRONMENT |
Program.cs yerleşimi
UseToSerilog() host kurulumunda en başta, request logging middleware’i ise pipeline’ın erken bir noktasında çağrılır.
appsettings — Serilog yapısı
Serilog Serilog.Settings.Configuration ile JSON’dan kurulur. Console (dev), File ve Seq (5341 ingest portu) sink’leri kullanılır; enrich ve gürültü filtreleri burada tanımlanır.
| Bölüm | Amaç |
|---|---|
MinimumLevel.Override | Framework gürültüsünü Warning’e çeker; uygulama log’ları Information kalır |
Enrich | FromLogContext (scope property’leri), WithMachineName, WithThreadId, WithProcessId |
WriteTo | Console + günlük rolling File + Seq |
Filter.ByExcluding | /hc, /metrics, /jobs gibi sağlık/metrik/dashboard yollarını log’dan çıkarır |
İlgili
Observability
Seq, Prometheus ve Grafana yığını.
Monitoring
OpenTelemetry metrics ve health gauge.
Operasyon
Ortam değişkenleri ve log yönetimi.
API
Middleware pipeline sırası.