繁体   English   中英

ILogger 未注入 Durable Functions v2.0

[英]ILogger not Injected in Durable Functions v2.0

目前我正在尝试将ILoggerILogger<>添加到 Azure Durable Function 以便在活动功能中使用日志记录。

登录编排 Function 工作正常,并被注入方法本身,但尝试为ILogger注入构造函数总是会导致 Null 异常。

builder.Services.AddLogging();

添加到启动文件(Bootstrapper)时,上述内容似乎不起作用,以下变化也不起作用:

builder.Services.AddSingleton(typeof(ILogger<>), typeof(Logger<>));

有人解决了这个问题吗?

从您的启动文件中删除以下任一行:

builder.Services.AddLogging();
builder.Services.AddSingleton(typeof(ILogger<>), typeof(Logger<>));

然后,无论您在哪里注入ILogger ,都使用ILogger<T>添加要注入的记录器的type ,即:

public class Function1
{
    private readonly ILogger _logger;

    public Function1(ILogger<Function1> logger)
    {
        _logger = logger;
    }

    [FunctionName("Function1")]
    public async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req)
    {
        _logger.LogInformation("C# HTTP trigger function processed a request.");

        string name = req.Query["name"];

        string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
        dynamic data = JsonConvert.DeserializeObject(requestBody);
        name = name ?? data?.name;

        return name != null
            ? (ActionResult)new OkObjectResult($"Hello, {name}")
            : new BadRequestObjectResult("Please pass a name on the query string or in the request body");
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM