Уровни логирования

  • Михаил
  • 8 мин. на прочтение
  • 42
  • 19 Mar 2025
  • 19 Mar 2025

В .NET Core (и .NET 5+) уровни логирования используются для классификации сообщений логирования по их важности. Вот стандартные уровни логирования, которые поддерживаются в .NET Core:

Trace (0) - Очень подробные сообщения, обычно используются для отладки.
Debug (1) - Сообщения отладки, которые могут быть полезны при разработке и отладке приложения.
Information (2) - Информационные сообщения, которые описывают обычное выполнение приложения.
Warning (3) - Предупреждающие сообщения, которые указывают на необычные или потенциально опасные ситуации.
Error (4) - Сообщения об ошибках, которые указывают на сбои в выполнении приложения.
Critical (5) - Критические сообщения, которые указывают на серьезные сбои, требующие немедленного внимания.
None (6) - Уровень, который отключает все логирование.
Эти уровни логирования можно использовать для настройки того, какие сообщения будут записываться в лог. Например, можно настроить логирование так, чтобы записывались только сообщения уровня Warning и выше, что позволит игнорировать менее важные сообщения.

Пример настройки логирования в appsettings.json:

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

В этом примере уровень логирования по умолчанию установлен на Information, а для пространства имен Microsoft - на Warning.

Для использования логирования в коде, можно внедрить ILogger в класс и затем использовать его для записи сообщений:

public class MyService
{
   private readonly ILogger<MyService> _logger;
   public MyService(ILogger<MyService> logger)
   {
       _logger = logger;
   }
   public void DoWork()
   {
       _logger.LogInformation("Starting work.");
       // ...
       _logger.LogWarning("This is a warning message.");
       // ...
       _logger.LogError("An error occurred.");
   }
}

Таким образом, можно гибко настраивать логирование в приложении .NET Core, чтобы записывать только те сообщения, которые имеют значение для текущего контекста выполнения.