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.

Top comments (0)

An Animated Guide to Node.js Event Loop

Node.js doesn’t stop from running other operations because of Libuv, a C++ library responsible for the event loop and asynchronously handling tasks such as network requests, DNS resolution, file system operations, data encryption, etc.

What happens under the hood when Node.js works on tasks such as database queries? We will explore it by following this piece of code step by step.