DEV Community

MustafaSamedYeyin
MustafaSamedYeyin

Posted on

Asp.net core Logging Log Level'lara Giriş.

Log Level'leri ne işe yarar ?

Uygulamamızda logları önem sırasına göre koymamızı sağlar, yani örneğin : log mesajının uyarı mesajını olduğunu söylemek istersek Warnig veririz. Eğer uygulama kritik bir hata meydana geldiyse Critical mesajını veririz.

Log level'leri nelerdir, kaç tanedir ?

alt text

7 tane log level'vardır.

Peki loglama nasıl yapılır ?

1.) Asp.net core Mvc projesi oluşturun.

2.) HomeController'ın Index action'ını aşağıdaki logları ekleyelim :

            _logger.LogTrace("0");
            _logger.LogDebug("1");
            _logger.LogInformation("2");
            _logger.LogWarning("3");
            _logger.LogError("4");
            _logger.LogCritical("5");
Enter fullscreen mode Exit fullscreen mode

HomeController aşağıdakine benzer olmalıdır.

alt text

3.) Asp.net core Mvc uygulamanızı dotnet run ile ayağı kaldırın. Log'ları aşağıdaki gibi gözükecektir :

alt text

Gördüğünüz üzere Warnig, Error ve Critical için mesaj gözükse de LogInformation, LogDebug, LogTrace metotlarını mesajları gözükmedi bunun sebebi : Development ortamında olduğumuz için appsettings.Development.json dosyasında configuration ayarlarını düzeltmemiz gerekecek.

4.) Default olarak gelen appsettings.Development.json içeriği aşağıdaki gibidir.

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  }
}

Enter fullscreen mode Exit fullscreen mode

Gördüğünüz üzere LogLevel'i "Default" olarak "Information" yazıyor. Yani bizim sadece Information ve üstü log'ları görmemizi sağlıyor bu configuration.

Eğer appsettings.Development.json'ı aşadaki gibi değiştirirsek:

{
  "Logging": {
    "LogLevel": {
      "Default": "Debug",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  }
}

Enter fullscreen mode Exit fullscreen mode

Gördüğünüz üzere "Default" değerini "Debug" olarak ayarladım.

dotnet run ile uygulamayı ayağı kaldırırsak, Debug ve üstü bütün log'ları görürüz, yani :

alt text

Ödev :

"Default": "...",
Enter fullscreen mode Exit fullscreen mode

yukarıdaki "..." adlı yerlere : Trace, Debug, Information, Warning, Error, Critical değerlerini deneyerek uygulamanızı ayağa kaldırıp inceleyiniz.

Bir dahaki yazımda görüşmek üzere.

En iyi dileklerim ile.

Mustafa Samed Yeyin.

Discussion (0)