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)