如何利用应用程序见解在控制台/ WebJob输出和Azure App Services中记录数据

时间:2019-07-10 12:30:46

标签: azure azure-application-insights azure-webjobs

我正在通过HostBuilder使用 v3 的网络作业。

我必须如何配置记录仪,以便可以使用遥测客户端跟踪在控制台输出中可见并且在azure应用程序服务中可见的跟踪数据 这个webjob正在运行?

我想获得一个ILogger实例,该实例记录到控制台和Azure中。

这行代码:

 var logger = host.Services.GetRequiredService<ILogger<Program>>();
            logger.LogInformation("I log only in the console but not azure.");

不会将其数据发送到Azure应用洞察力图表...

我不想使用ILogger和Telemetryclient来记录愚蠢的东西。

var builder = new HostBuilder()
                .UseEnvironment("Development")
                .ConfigureWebJobs(b =>
                {
                    // Add extensions and other WebJobs services
                })
                .ConfigureAppConfiguration(b =>
                {

                    // Add configuration sources          
                })
                .ConfigureLogging((context, b) =>
                {
                    // Add Logging Providers
                    b.AddConsole(); 


                    // If this key exists in any config, use it to enable App Insights
                    string appInsightsKey = context.Configuration["APPINSIGHTS_INSTRUMENTATIONKEY"]; // taken from the appservice environmentvariable

                    appInsightsKey = "xxxxxxxx";

                    if (!string.IsNullOrEmpty(appInsightsKey))
                    {
                        // This uses the options callback to explicitly set the instrumentation key.
                        b.AddApplicationInsights(o => o.InstrumentationKey = appInsightsKey);
                    }
                })
                .UseConsoleLifetime();

            var host = builder.Build();

            // my code like telemetryClient.TrackTrace("show this text in console output AND azure app service where this webjob belongs to")

            using (host)
            {
                host.Run();
            }

1 个答案:

答案 0 :(得分:0)

如果我误会你,请纠正我。

对于“我想获取一个ILogger实例,该实例将日志记录到控制台并进行蔚蓝”,我使用以下代码:

        static void Main(string[] args)
        {
            var builder = new HostBuilder()
                .ConfigureWebJobs(b =>
                {
                    b.AddAzureStorageCoreServices();
                    b.AddAzureStorage();
                })
                .ConfigureAppConfiguration(b =>
                {

                }
                )
                .ConfigureLogging((context, b) =>
                {

                    b.AddConsole();
                    string instrumentationKey = context.Configuration["APPINSIGHTS_INSTRUMENTATIONKEY"];
                    if (!string.IsNullOrEmpty(instrumentationKey))
                    {
                        b.AddApplicationInsights(o => o.InstrumentationKey = instrumentationKey);
                    }
                })                
                .UseConsoleLifetime();

            var host = builder.Build();

            var logger = host.Services.GetRequiredService<ILogger<Program>>();
            logger.LogInformation("hello 111111111111111");

            using (host)
            {
                host.Run();
            }
        }

运行代码后,该消息将登录到控制台和Azure门户中的应用程序见解:

enter image description here