目前我正在尝试添加一个ILogger
or ILogger<>
到 Azure Durable Function,以便在活动函数中使用日志记录。
登录编排函数工作正常,并被注入到方法本身中,但尝试构造函数注入ILogger
总是导致空异常。
builder.Services.AddLogging();
当添加到启动文件(Bootstrapper)时,上面的内容似乎不起作用,并且以下变体也不起作用:
builder.Services.AddSingleton(typeof(ILogger<>), typeof(Logger<>));
有人解决这个问题了吗?
从启动文件中删除以下任一行:
builder.Services.AddLogging();
builder.Services.AddSingleton(typeof(ILogger<>), typeof(Logger<>));
然后,无论您在何处注入ILogger
,添加type
您的记录器正在被注入使用ILogger<T>
i.e:
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");
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)