Перейти к содержанию

Добавление сообщений журнала в приложение

Журналирование, как и почти всё в ASP.NET Core, доступно через внедрение зависимостей. Для использования нужно внедрить экземпляр ILogger<T>:

public class IndexModel : PageModel
{
    private readonly RecipeService _service;
    private readonly ILogger<IndexModel> _log;

    public ICollection<RecipeSummaryViewModel> Recipes { get; set; }

    public IndexModel(RecipeService service, ILogger<IndexModel> log)
    {
        _service = service;
        _log = log;
    }

    public void OnGet()
    {
        Recipes = _service.GetRecipes();
        _log.LogInformation("Loaded {RecipeCount} recipes", Recipes.Count);
    }
}

Здесь мы используем метод расширения LogInformation(), чтобы записать сообщение уровня Information. Также мы используем строку с заполнителем (placeholder) {RecipeCount}, и дополнительным значением Recipes.Count.

Совет

Рекомендуется вместо интерполяции ($"Loaded {Recipes.Count} recipes") использовать заполнители, так как в этом случае также формируется дополнительная информация, которую можно использовать для структурного журналирования.

Точный вид записанного сообщения будет зависеть от того, куда оно пишется, и будет включать в себя до шести общих элементов:

  • уровень сообщения — определяется перечислением LogLevel;
  • категория события — категория может быть любым строковым значением, но обычно задаётся как полное имя класса. Для ILogger<T> категорией будет полное имя типа T;
  • сообщение — содержание сообщения журнала. Может быть статической строкой, или может содержать заполнители переменных;
  • параметры — если сообщение содержит заполнители, они ассоциируются с указанными параметрами;
  • исключение — если возникает исключение, можно передать объект исключения в метод записи для добавления его к сообщению;
  • EventId — необязательный целочисленный идентификатор ошибки.

Три из этих элементов являются обязательными — уровень, категория и сообщение.

Уровень сообщения журнала: насколько важно сообщение журнала?

Категория сообщения журнала: какой компонент создал журнал

Форматирование сообщений и сбор значений параметров


Последнее обновление : 7 мая 2023 г.
Дата создания : 20 октября 2022 г.

Комментарии

Комментарии