Добавление сообщений журнала в приложение¶
Журналирование, как и почти всё в 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 г.
Дата создания : 20 октября 2022 г.