Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
High-Performance Logging: LoggerMessage Source Generator, IsEnabled ve Allocation Maliyeti
Kapalı seviyedeki bir LogDebug satırı bile params object[] ve boxing yüzünden çağrı başına 128 byte ayırır; [LoggerMessage] source generator'ı tipli parametre ve IsEnabled kontrolüyle bunu sıfıra indirir. BenchmarkDotNet ölçümleri, event kataloğu, primary constructor, [LogProperties] ve Telemetry paketinin generator'ı değiştirmesinin bedeli.
ASP.NET Core'da HTTP Logging: AddHttpLogging, W3C Logger ve Request/Response Body'nin Maliyeti
HTTP logging'i production'da istek başına tek event, kapalı body ve yalnız hata anında body loglayan bir interceptor ile kullan. AddHttpLogging'in gerçek varsayılanları, header allow list'i, CombineLogs, [HttpLogging] ve WithHttpLogging, 4xx/5xx'te body loglayan IHttpLoggingInterceptor, W3C logger dosyası ve body loglamanın ölçülmüş maliyeti: istek başına 8 KB yerine 85 KB allocation.