[英]ILogger not Injected in Durable Functions v2.0
目前我正在尝试将ILogger
或ILogger<>
添加到 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.