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 ?
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");
HomeController aşağıdakine benzer olmalıdır.
3.) Asp.net core Mvc uygulamanızı dotnet run ile ayağı kaldırın. Log'ları aşağıdaki gibi gözükecektir :
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"
}
}
}
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"
}
}
}
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 :
Ödev :
"Default": "...",
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)