3

以下代码在我的机器上本地工作。这意味着几分钟后所有日志语句都在应用程序洞察中......

当我使用 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项目:

xx

4.6.1项目:

在此处输入图像描述

我也刚刚部署为具有调试模式的 Azure Webjob vom Visual Studio,但它仍然无法正常工作,我什至在该部署对话框中额外配置了 appinsights,但没有区别!

4

0 回答 0