azure应用程序见解-如何在Startup中注册ILogger



我在json设置中有一个日志记录部分:

{
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
}
}
}

我需要在Startup中注册它,以便能够在处理程序中使用。

到目前为止,我尝试了各种选择,但都不起作用:

选项1

builder.Services.AddApplicationInsightsTelemetry(); // returns error: IServicesCollection does not contain a definition for AddApplicationInsightsTelemetry 

选项1更新

我在项目中添加了Microsoft.ApplicationInsights.AspNetCore,所以AddApplicationInsightsTelemetry现在可用,但ILogger仍然提供null

选项2

builder.Services.AddLogging(logging =>
{
logging.AddConfiguration(hostingContext.GetSection("logging"));
}); // ILogger is null in handler

但找不到任何关于我的特殊案例的信息

如何在Startup中注册ILogger,以便继续使用我的应用程序json中的设置?

这是我正在使用的处理程序:

public class ExampleHandler : IRequestHandler<ExampleQuery, bool>
{
private readonly ILogger _log;
public ExampleHandler(ILogger log)
{
_log = log;
}
public async Task<bool> Handle(ExampleQuery request, CancellationToken cancellationToken)
{
// _log is null here;
return true;
}
}
  1. 安装Microsoft.ApplicationInsights.AspNetCorenuget包

  2. 解析类型记录器:

public class ExampleHandler : IRequestHandler<ExampleQuery, bool>
{
private readonly ILogger<ExampleHandler> _log;
public ExampleHandler(ILogger<ExampleHandler> log)
{
_log = log;
}
...
}

相关内容

  • 没有找到相关文章

最新更新