以下代码在我的机器上本地工作。这意味着几分钟后所有日志语句都在应用程序洞察中......
当我使用 Publish as Webjob 部署应用程序时,所有内容都已部署但没有触发 Webjob 的日志语句,尽管我可以看到它每 5 秒运行一次......
我也试过 Thread.Sleep(30000); // 30秒...
为什么应用洞察可以在本地工作,但不能托管在 azure 上?
控制台应用程序 .NET 4.7.2:
// Create the DI container.
IServiceCollection services = new ServiceCollection();
var appInsightsKey = ConfigurationManager.AppSettings.Get("APPINSIGHTS_INSTRUMENTATIONKEY");
Console.WriteLine($"appInsightsKey: {appInsightsKey}");
// Being a regular console app, there is no appsettings.json or configuration providers enabled by default.
// Hence instrumentation key and any changes to default logging level must be specified here.
services.AddLogging(loggingBuilder =>
{
loggingBuilder.AddFilter<ApplicationInsightsLoggerProvider>("", LogLevel.Information);
loggingBuilder.AddApplicationInsights(appInsightsKey);
}
);
services.AddApplicationInsightsTelemetryWorkerService(appInsightsKey);
IServiceProvider serviceProvider = services.BuildServiceProvider();
// Obtain logger instance from DI.
ILogger<Program> logger = serviceProvider.GetRequiredService<ILogger<Program>>();
logger.LogWarning("nogger 2: warning");
logger.LogInformation("nogger2: information");
logger.LogError("nogger2: error");
Console.WriteLine("This is the end...");
Task.Delay(5000).Wait();
更新
我正在使用 Microsoft.ApplicationInsights.WorkerService nuget:
https://docs.microsoft.com/de-de/azure/azure-monitor/app/worker-service
向下滚动查看 .NET 框架控制台应用程序!
我注意到一些有趣的事情(引用的不同显示......)但也许它最终没有任何区别,因为对于这两个项目,天蓝色的ILogging不起作用:
4.7.2项目:
4.6.1项目:
我也刚刚部署为具有调试模式的 Azure Webjob vom Visual Studio,但它仍然无法正常工作,我什至在该部署对话框中额外配置了 appinsights,但没有区别!