ASP.NET Logging ve Error Handling Yöntemleri


ASP.NET Logging ve Error Handling Yöntemleri

ASP.NET logging ve error handling, modern web uygulamalarında hata takibi ve sistem stabilitesi açısından kritik önemdedir. Geliştiriciler, uygulamalarını izleyerek sorunların kök nedenini hızlıca tespit edebilir ve hata yönetimi ile kullanıcı deneyimini artırabilir. Bu makalede ASP.NET platformunda logging ve error handling işlemlerinin nasıl uygulanacağını teknik detaylarla birlikte inceleyeceğiz.

Logging Nedir ve ASP.NET'te Kullanımı

Logging, uygulamanızda gerçekleşen olayların merkezi bir yere kaydedilmesini sağlar. ASP.NET uygulamalarında .NET Core ile birlikte gelen ILogger arayüzü sayesinde kolayca loglama yapabilirsiniz. Bu yöntem sayesinde, gerçekleşen hataları, uyarıları ve bilgilendirme mesajlarını hem dosya sistemine hem de harici servislere kaydedebilirsiniz. Aşağıda basit bir logging örneği bulabilirsiniz:


public class HomeController : Controller
{
    private readonly ILogger<HomeController> _logger;

    public HomeController(ILogger<HomeController> logger)
    {
        _logger = logger;
    }

    public IActionResult Index()
    {
        _logger.LogInformation("Index aksiyonu çağrıldı.");
        return View();
    }
}

Error Handling (Hata Yönetimi) Yöntemleri

ASP.NET logging işleminin yanında doğru hata yönetimi de uygulamanızın sağlam çalışmasını sağlar. Kullanıcıya gösterilecek özel hata sayfalarını UseExceptionHandler middleware‘i ile ayarlayabilirsiniz. Aşağıda global error handling örneğini görebilirsiniz:


public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
    }
    // Diğer middleware'ler
}

Custom Exception Middleware Kullanımı

Daha detaylı kontrol için kendi custom middleware’inizi yazarak tüm hataları loglayabilir ve özelleştirilmiş bir mesaj dönebilirsiniz. İşte basit bir middleware örneği:


public class ErrorHandlingMiddleware
{
    private readonly RequestDelegate _next;
    private readonly ILogger<ErrorHandlingMiddleware> _logger;

    public ErrorHandlingMiddleware(RequestDelegate next, ILogger<ErrorHandlingMiddleware> logger)
    {
        _next = next;
        _logger = logger;
    }

    public async Task Invoke(HttpContext context)
    {
        try
        {
            await _next(context);
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Hata oluştu.");
            context.Response.StatusCode = 500;
            await context.Response.WriteAsync("Bir hata oluştu. Lütfen tekrar deneyin.");
        }
    }
}

Sonuç

ASP.NET logging ve error handling mekanizmalarını etkin şekilde kullanmak, hem yazılım kalitenizi yükseltir hem de sistem hatalarını hızlıca tespit etmenizi sağlar. Doğru yapılandırılmış logging ile uygulama davranışlarını izleyebilir, error handling ile ise beklenmeyen durumlarda kullanıcıya profesyonel bir deneyim sunabilirsiniz. ASP.NET logging ve error handling yöntemlerini projelerinize entegre ederek sağlam ve sürdürülebilir web uygulamaları geliştirebilirsiniz.