Я предполагаю, что вы используете Microsoft.Extensions.Logging
. При этом, по крайней мере, нет необходимости регистрировать что-нибудь . Регистрация уже настроена с помощью вызова на CreateDefaultBuilder()
в Program.cs
. Самое большее, что вам нужно сделать, это добавить альтернативных / дополнительных провайдеров журналов, но это конфигурация. Вы бы никогда не назвали что-то вроде services.AddTransient
с ILogger
.
Вместо этого вы обрабатываете параметр типа интерфейса ILogger
через параметр, который вы используете для его внедрения:
public class Example
{
public Example(ILogger<Example> logger)
{
...
}
}
Вы по-прежнему можете хранить его в простом ILogger
иваре, без универсального типа, но для параметра, который вы вводите, необходимо указать тип параметра.
В качестве альтернативы, если вы ищете что-то более гибкое, вы можете вместо этого ввести ILoggerFactory
, а затем использовать GetType()
для предоставления типа:
public class Example
{
private readonly ILogger _logger;
public Example(ILoggerFactory loggerFactory)
{
_logger = _loggerFactory.CreateLogger(GetType())
}
}