Asp.Net Core İle Serilog

ASP.NET Core ve Serilog, modern .NET uygulamalarının oluşturulmasında sıkça kullanılan iki teknolojidir. ASP.NET Core, platform bağımsız web uygulamalarının oluşturulmasını kolaylaştıran açık kaynaklı bir çerçevedir. Serilog ise .NET uygulamaları için yapılandırılabilir ve esnek bir günlük oluşturma kütüphanesidir.

ASP.NET Core ve Serilogu birleştirerek, uygulamanızın çalışma zamanında oluşan olayları kaydedebilir ve izleyebiliriz. Serilog, .NET uygulamalarındaki günlük oluşturma sürecini kolaylaştırmak için yapılandırılabilirliğe odaklanır. Bu, uygulama çıktısının istenilen bir hedefe yönlendirilmesine ve istenilen bir formatta biçimlendirilmesine olanak tanır.

Serilog'i kullanmak için öncelikle ASP.NET Core uygulamanıza eklemelisiniz. Bu, NuGet paketi olarak sağlanır. Ayrıca, Serilog hedeflerini (loglama işleminin yapıldığı yerleri) belirlemeniz gerekiyor. Bu hedefler, Console, File, EventLog veya Elasticsearch gibi hedeflere yönlendirilebilir.

Aşağıdaki kod örneği, Serilog'u ASP.NET Core uygulamanıza nasıl ekleyeceğinizi göstermektedir:

 

Log.Logger = new LoggerConfiguration()
.MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
.MinimumLevel.Override("System", LogEventLevel.Warning)
.Enrich.FromLogContext()
.WriteTo.File("logs/Uygulma.log",
rollOnFileSizeLimit: true,
shared: true,
flushToDiskInterval: TimeSpan.FromSeconds(1))
.CreateLogger();

Yukarıdaki kod örneği, Serilog'u yapılandırmak için bir LoggerConfiguration örneği oluşturur ve konsola yazdırmak için yapılandırır. UseSerilogRequestLogging yöntemi, HTTP isteklerinin günlüklenmesini etkinleştirir. Daha sonra, MapControllers yöntemi, ASP.NET Core kontrolörlerinin yönlendirilmesini yapılandırır.

Serilog, ASP.NET Core'da birçok yerde kullanılabilir. Örneğin, ILogger arayüzü aracılığıyla, kodunuzda Serilog kullanarak uygulamızda log kayıtları oluşturma işlemlerini gerçekleştirebilirsiniz:

using Microsoft.Extensions.Logging;

public class HomeController : Controller

{

private readonly ILogger<HomeController> _logger;

public HomeController(ILogger<HomeController> logger)

{

_logger = logger;

}

public IActionResult Index()

{

_logger.LogInformation("Index sayfası görüntülendi");

return View

}