WebJob не пишет логи - PullRequest
       25

WebJob не пишет логи

0 голосов
/ 23 июня 2019

Есть ли что-то еще, что мне нужно сделать здесь, чтобы мой WebJob записал в журнал хранилища?Что-то должно быть не хватает, но я не уверен, что это может быть.

Документация нечеткая и указывает только на то, что
Функция ProcessQueueMessage находится в классе с именем StorageQueueProcessor и метод успешно обрабатывает новые элементы, добавленные в очередь хранения.AzureWebJobsDashboard использует ту же очередь хранения для журналов, но журналы не записываются.

Следующие строки подключения определены в appSettings.json и являются правильными:

  "ConnectionStrings": {
    "Storage": ""
    "ServiceBus": ""
    "AzureWebJobsStorage": ""
    "AzureWebJobsDashboard": ""
  },

  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Information",
      "System": "Warning",
      "Microsoft": "Information"
    },
    "Console": {
      "LogLevel": {
        "Default": "Warning",
        "System": "Information",
        "Microsoft": "Information"
      }

Вот код C #, который запускается при запуске:

static async Task MainAsync(string[] args)
        {
            Action<QueuesOptions> qOptions = delegate (QueuesOptions s) 
            {
                s.MaxDequeueCount = 1;
            };

            var builder = new HostBuilder()
               .ConfigureWebJobs(b =>
               {
                   b.AddAzureStorageCoreServices()
                    .AddAzureStorage();

                })
               .ConfigureAppConfiguration(b =>
               {

                })
               .ConfigureLogging((context, b) =>
               {
                   b.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Debug);
                   b.AddConsole();
                })
               .UseConsoleLifetime();

            var host = builder.Build();
            using (host)
            {
                await host.RunAsync();
            }

        }

Здеськод для обработки элемента очереди хранилища и попытки записи в журналы хранилища Azure:

 public static async Task ProcessQueueMessage([QueueTrigger("site-indexer")] CloudQueueMessage message, TextWriter log)
        {
                System.Console.Out.WriteLine($"Out");
                System.Console.Error.WriteLine($"Error Test Line");
                log.WriteLine($"Log Write Line");
   }

1 Ответ

0 голосов
/ 26 июня 2019

Вам необходимо установить пакет Microsoft.Extensions.Logging.AzureAppServices , версия 2.2.5. Затем в методе Main -> ConfigureLogging добавьте b.AddAzureWebAppDiagnostics();

Пример кода:

Основной метод:

        //other code

        var builder = new HostBuilder()
        .ConfigureWebJobs(b =>
        {
            b.AddAzureStorageCoreServices();
            b.AddAzureStorage();
        })
        .ConfigureAppConfiguration(b =>
        {

        }
        )
        .ConfigureLogging((context, b) =>
        {
            b.SetMinimumLevel(LogLevel.Debug);
            b.AddConsole();

            //add this line of code.
            b.AddAzureWebAppDiagnostics();
        })                
        .UseConsoleLifetime();

         //other code

В Function.cs:

        public static void ProcessQueueMessage([QueueTrigger("myqueue1", Connection = "AzureWebJobsStorage")]CloudQueueMessage message, ILogger log)
        {
            log.LogInformation("hello, can you see me?");
            log.LogInformation("Log test message:" + DateTime.Now.ToLongDateString());
            log.LogInformation("the queue message is: " + message.AsString);
        }

Затем перейдите на портал Azure -> Служба веб-приложений (веб-работа опубликована) -> на левой панели щелкните «Журналы службы приложений» -> Включите «Журнал приложений (Blob)» и настройте другие параметры, такие как logLevel Хранение блобов. Скриншот как удар:

enter image description here

После публикации веб-задания в веб-приложении запустите веб-задания, и вы можете проверить информацию журнала на сайте kudu:

enter image description here

Наконец, перейдите к контейнеру BLOB-объектов, в котором вы сконфигурировали вышеуказанные шаги, вы можете увидеть там логи:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...