Разница между ILogger, ILoggerFactory и ILogger <> с регистрацией MS в функциях Azure 2 - PullRequest
0 голосов
/ 02 июня 2019

Обновление

В чем разница между ILoggerFactory и ILogger <> с регистрацией MS в функциях Azure 2, которая поддерживает Application Insights?

Код ниже:

    public class Functions
    {
        //other code
        private ILogger _log;

        public Functions(ILoggerFactory loggerFactory, ILogger<Functions> log)
        {
            _log = loggerFactory.CreateLogger<Functions>();
            _log = log;
        }

        [FunctionName("Token")]
        public async Task<IActionResult> Function1(
            [HttpTrigger()]...)
        {
               _log.LogInformation("Function1 invoked");
        }
    }

Обновление 2

ILogger: Если в качестве параметра конструктора используется ILogger, возникает ошибка ниже.Он работает, если используется в качестве параметра функции.

Каков срок службы для экземпляра ILogger?

Планируется ли его поддержка в CTOR?

[04/06/2019 10:06:12] Executed 'SampleFunction' (Failed, Id=3912a5b7-10fa-41e1-9
0f8-fba9d2cda49b)
[04/06/2019 10:06:12] Microsoft.Extensions.DependencyInjection.Abstractions: Una
ble to resolve service for type 'Microsoft.Extensions.Logging.ILogger' while att
empting to activate 'Microsoft.Azure.Functions.Samples.DependencyInjectionBasic.
SampleFunction'.
[04/06/2019 10:06:12] An unhandled host error has occurred.
[04/06/2019 10:06:12] Microsoft.Extensions.DependencyInjection.Abstractions: Una
ble to resolve service for type 'Microsoft.Extensions.Logging.ILogger' while att
empting to activate 'Microsoft.Azure.Functions.Samples.DependencyInjectionBasic.
SampleFunction'.

1 Ответ

0 голосов
/ 04 июня 2019

Если вы просто хотите использовать поддержку ведения журнала по умолчанию, которая ведет к Application Insights, вы просто хотите использовать экземпляр ILogger в качестве параметра в сигнатуре своей функции.Обратите внимание, что это отдельно от ILogger<T>, который вы упомянули в своем вопросе.Для примера посмотрите официальную документацию .

Если вы хотите использовать настраиваемое ведение журнала, наилучшим подходом является реализация настраиваемого ILoggerProvider с использованием новой поддержки Внедрение зависимостей для функций Azure .

...