Логи TraceWriter не попадают в аналитику - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь настроить аналитику для тестового приложения:

public void ProcessQueueMessage(
       [BlobTrigger("blob-injector/{name}")] CloudBlockBlob blob,
       string name,
       [Queue("invoice")] ICollector<string> output,
       [Blob("blob-archive/{name}")] CloudBlockBlob archive,
       TraceWriter log)
    {

        log.Info($"Started processing {name}");
        string content = blob.DownloadText();
        log.Info($"retrieved file {name}{Environment.NewLine}{content}");
        output.Add(content);
        log.Info($"{name} added to queue");
        archive.UploadText(content);
        log.Info($"{name} has been archived");
        blob.DeleteIfExists();
        log.Info($"Completed processing {name}");
    }

, и я добавил экземпляр appInsights в мою подписку Azure.Я получаю некоторые записи из службы приложений:

enter image description here

У меня настроено ведение журнала диагностики для входа в хранилище больших двоичных объектов, и я могу найти там свои журналы.вся информация, которую я нахожу, кажется, заявляет, что у меня есть все, что мне нужно.Пока я не могу найти свои журналы в Application Insights.

[edit] Это Web-работа .net 4.6.1, если это уместно.

[update] Я изменил ее, чтобы использовать TelemetryClientи я получаю логи с этим.

1 Ответ

0 голосов
/ 13 ноября 2018

Предположим, вы используете Microsoft.Azure.WebJobs.Logging.ApplicationInsights 2.2.0.

. Я вижу, как журналы TraceWriter попадают в аналитику в соответствии с шагами / кодом ниже:

1.Создание .net Framework 4.6.1.webjob

2. В Visual Studio Nuget Package Manager устанавливает следующие пакеты версий:

Microsoft.Azure.WebJobs.Logging.ApplicationInsights 2.2.0

System.Configuration.ConfigurationManager 4.5.0

Microsoft.Extensions.Logging.Console 2.1.1

3. В файле app.config добавьте следующее (для локального теста):

AzureWebJobsDashboard, AzureWebJobsStorage, APPINSIGHTS_INSTRUMENTATIONKEY

Снимок экрана выглядит следующим образом: enter image description here

4. В своем веб-приложении Azure -> настройки приложения добавьте AzureWebJobsDashboard и APPINSIGHTS_INSTRUMENTATIONKEY,снимок экрана выглядит следующим образом: enter image description here

5. В методе Main() добавьте следующий код:

using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;
using System.Configuration;

namespace WebJob8
{    
    class Program
    {       
        static void Main()
        {
            using (var loggerFactory = new LoggerFactory())
            {
                var config = new JobHostConfiguration();

                var instrumentationKey = ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"];
                config.DashboardConnectionString = "";
                config.LoggerFactory = loggerFactory
                    .AddApplicationInsights(instrumentationKey, null)
                    .AddConsole();

            if (config.IsDevelopment)
                {
                    config.UseDevelopmentSettings();
                }

                var host = new JobHost(config);
                // The following code ensures that the WebJob will be running continuously
                host.RunAndBlock();
            }
        }
    }
}

6.Код в функциях.cs: ​​

    public class Functions
    {
        // This function will get triggered/executed when a new message is written 
        // on an Azure Queue called queue.
        public static void ProcessQueueMessage([QueueTrigger("queue")] string message, TraceWriter log)
        {
            log.Info("1113 this is a queue message: "+message);
            log.Info("1113 it is a test from azure web jobs!!!");
        }
    }

7. Опубликовать веб-задание в Azure, запустить его, а затем перейти на портал Azure -> понимание вашего приложения -> поиск, вы можете просмотреть сообщения журнала:

enter image description here

, и это также появляется в аналитике: enter image description here

...