我正在添加应用程序洞察(AI)到我的web服务,通过以下页面应用洞察指令。我设法让我的服务连接到AI,我能够看到我的服务什么时候预编了一个帖子,get等。我也通过我的服务设置了日志调用,但是没有一个被写入我的AI的跟踪日志。

我确保设置了我的Startup.cs和appsettings.json文件,以包含在整个服务中运行AI所需的新代码,日志数据需要让AI抓取日志进行调试和升级。
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddApplicationInsightsTelemetry();
}appsettings.json

日志记录示例
public async Task ProcessQueueAsync(dBData dbContext)
{
// _logger is of type ILogger<[INSERT CLASS NAME]>
_logger.LogDebug("This is a test log by Lotzi11.");
await ProcessQueueAsyncSingle(dbContext, CancellationToken.None);
}有人能帮我找出为什么我的日志没有被发送到人工智能吗?
发布于 2021-02-05 02:26:23
您的代码配置和appsettings.json是正确的。我可以看到这些日志在人工智能中,根据你的设置,在我身边。
有一件事你应该知道,可能需要几分钟这些数据到达人工智能服务器。请等待几分钟,比如5分钟或更长时间,然后从azure门户->应用程序洞察力中再次查询这些数据。
这里有一个简单的方法来检查数据是否被发送到AI。在visual studio中,运行项目时,可以在visual studio输出窗口中搜索日志。如果您可以在那里找到日志,则应该将其发送给AI:
在visual studio输出窗口中搜索:

如果仍然无法在AI中看到这些日志,还应该检查代码中是否设置了类似于filter或sampling的内容。
发布于 2021-02-05 15:20:00
当我致力于解决我的问题时,我发现我的公司使用Serilog来处理日志记录,所以我不得不修改我的项目,这样Serilog也会向AI发送日志。我使用下面的页面塞利洛-水槽.应用见解修改了代码。
这让我意识到,即使我遵循Microsofts关于设置AI的说明,我的ILogger类也没有正确设置来处理向AI发送日志的问题。为了解决这个问题,我修改了Startup.cs的构造函数:
public Startup(IHostEnvironment environment, IConfiguration configuration)
{
var env = new Environment(environment.EnvironmentName);
_systemConfiguration = new SystemConfiguration(env, configuration);
_systemConfiguration.Validate();
Log.Logger = new LoggerConfiguration().Enrich.FromLogContext().WriteTo.ApplicationInsights(_systemConfiguration.BaseConfiguration["APPINSIGHTS_INSTRUMENTATIONKEY"], TelemetryConverter.Traces).CreateLogger();
using var provider = new SerilogLoggerProvider(Log.Logger);
_logger = provider.CreateLogger(nameof(Startup));
}在将AI添加到Log.Logger之后,我的日志开始显示在我的AI页面中。
https://stackoverflow.com/questions/66052823
复制相似问题