ASP.NET Core API - Почему тип регистратора соответствует классу контроллера? - PullRequest
0 голосов
/ 18 декабря 2018

В этом примере кода для создания экземпляра журнала с использованием Dependency Injection в ASP.NET Core, почему регистратор вводит класс контроллера при внедрении регистратора в конструктор?

ILogger<TodoController> logger

Вместо ILogger<TodoController>не должно ли быть просто ILogger logger передано в конструктор?

Пример кода:

public class TodoController : Controller
{
    private readonly ITodoRepository _todoRepository;
    private readonly ILogger _logger;

    public TodoController(ITodoRepository todoRepository,
        ILogger<TodoController> logger)
    {
        _todoRepository = todoRepository;
        _logger = logger;
    }

Источник: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?tabs=aspnetcore2x&view=aspnetcore-2.2

1 Ответ

0 голосов
/ 18 декабря 2018

Посмотрите на некоторые из примеров кода :

_logger.LogInformation(LoggingEvents.GetItem, "Getting item {ID}", id);

Затем соответствующий пример вывода :

info: TodoApi.Controllers.TodoController[1002]
      Getting item 0

Обратите внимание, чтоимя контроллера включено, хотя оно не было указано при вызове LogInformation?

Вот почему.Это позволяет регистратору автоматически включать класс, который регистрировал информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...