Включить ведение журнала диагностики

Завершено

Существуют встроенные средства диагностики для отладки приложения службы приложений. На этом занятии вы узнаете, как включить ведение журнала диагностики и добавить инструментирование в приложение и как получить доступ к данным, зарегистрированным в Azure.

В следующей таблице показаны типы ведения журнала, поддерживаемые платформы и места хранения и расположения журналов для доступа к информации.

Тип Платформа Расположение Description
Ведение журнала приложения Windows, Linux Файловая система Служба приложений и (или) BLOB-объекты службы хранилища Azure Записывает в журнал сообщения, создаваемые кодом вашего приложения. Сообщения создаются выбранной веб-платформой или кодом приложения непосредственно с помощью стандартного шаблона ведения журнала языка. Каждому сообщению назначается одна из следующих категорий: Критический, Ошибка, Предупреждение, Информация, Отладка и Трассировка.
Ведение журнала веб-сервера Windows Файловая система Службы приложений или BLOB-объекты службы хранилища Azure Необработанные данные HTTP-запросов в расширенном формате файла журнала W3C. Каждое сообщение журнала содержит такие данные, как метод HTTP, универсальный код ресурса (URI), IP-адрес клиента, порт клиента, агент пользователя, код ответа и т. д.
Подробные сообщения об ошибках Windows Файловая система Службы приложений Копии HTML-страниц ошибок, которые были бы отправлены в браузер клиента. По соображениям безопасности подробные страницы ошибок не должны отправляться клиентам в рабочей среде, но Служба приложений может сохранять страницу ошибки при каждом возникновении ошибки приложения с кодом HTTP 400 или выше.
Трассировка неудачно завершенных запросов Windows Файловая система Службы приложений Подробные сведения о невыполненных запросах, включая трассировку компонентов IIS, использованных для обработки запроса, и время, потраченное для каждого компонента. Одна папка создается для каждого невыполненного запроса, содержащего XML-файл журнала, и таблица стилей XSL для просмотра файла журнала.
Ведение журнала развертывания Windows, Linux Файловая система Службы приложений Помогает определить причину сбоя при развертывании. Ведение журнала развертывания происходит автоматически, нет никаких настраиваемых параметров для этого вида журнала.

Включение ведения журналов (Windows)

  1. Чтобы включить ведение журнала приложений для приложений Windows на портале Azure, перейдите к своему приложению и выберите Журналы службы приложений.

  2. Выберите Вкл. в параметре Ведение журнала приложений (файловая система) или Ведение журнала приложений (большие двоичные объекты) либо для обоих этих параметров. Параметр Файловая система предназначен для временных целей отладки и отключается автоматически через 12 часов. Параметр Большие двоичные объекты предназначен для долгосрочного ведения журнала, а для записи журналов требуется контейнер хранилища больших двоичных объектов.

    Примечание.

    При повторном создании ключей доступа учетной записи хранения необходимо сбросить соответствующую конфигурацию ведения журнала, чтобы использовать обновленные ключи доступа. Для этого отключите функцию ведения журнала, а затем снова.

  3. Вы также можете задать уровень сведений, включенных в журнал, как показано в следующей таблице.

    Уровень Включенные категории
    Отключен нет
    Ошибка "Ошибка", "Критические"
    Предупреждения "Предупреждение", "Ошибка", "Критические"
    Информация "Информация", "Предупреждение", "Ошибка", "Критические"
    Подробный "Трассировка", "Отладка", "Информация", "Предупреждение", "Ошибка", "Критические" (все категории)
  4. После завершения выберите Сохранить.

Включить ведение журнала приложений (Linux или контейнер)

  1. В разделе Журналы Службы приложений задайте параметру Ведение журнала приложений значение Файловая система.

  2. В поле Квота (МБ) укажите квоту диска для журналов приложений. В поле Срок хранения (в днях) укажите количество дней, в течение которых должны храниться журналы.

  3. После завершения выберите Сохранить.

Включение ведения журналов веб-сервера

  1. В поле Ведение журнала веб-сервера выберите Хранилище, чтобы журналы сохранялись в хранилище больших двоичных объектов, либо Файловая система, чтобы они сохранялись в файловой системе Службы приложений.

  2. В поле Срок хранения (в днях) укажите количество дней, в течение которых должны храниться журналы.

  3. После завершения выберите Сохранить.

Добавление сообщений журнала в код

В коде приложения для отправки сообщений журнала в журналы приложений используются обычные средства ведения журнала. Например:

  • Приложения ASP.NET могут использовать класс System.Diagnostics.Trace для записи информации в журнал диагностики приложений. Например:

    System.Diagnostics.Trace.TraceError("If you're seeing this, something bad happened");
    

    По умолчанию ASP.NET Core использует регистратор Microsoft.Extensions.Logging.AzureAppServices.

  • Приложения Python могут использовать пакет OpenCensus для отправки журналов в журнал диагностика приложения.

Журналы потоковой передачи

Прежде чем выполнять потоковую передачу журналов в режиме реального времени, включите нужный тип журнала. Служба приложений выполняет потоковую передачу любой информации, записанной в файлы, которые заканчиваются на .txt, .log или .htm и хранятся в каталоге /LogFiles (d:/home/logfiles).

Примечание.

Некоторые типы буфера журнала записывают данные в файл журнала, что может привести к нарушению порядка событий в потоке. Например, запись в журнале приложений, возникающая при посещении пользователем страницы, может отображаться в потоке перед соответствующей записью журнала HTTP о запросе страницы.

  • Портал Azure: для потоковой передачи журналов на портале Azure перейдите к своему приложению и выберите Потоковая передача журналов.

  • Azure CLI: для потоковой передачи журналов в Cloud Shell используйте следующую команду.

    az webapp log tail --name appname --resource-group myResourceGroup
    
  • Локальная консоль: для потоковой передачи журналов в локальной консоли установите Azure CLI и войдите в свою учетную запись. После входа следуйте инструкциям, приведенным для Azure CLI.

Файлы журнала доступа

Если выбран параметр службы хранилища Azure больших двоичных объектов, то для этого типа журнала требуется клиентское средство, которое работает со службой хранилища Azure.

Для журналов, сохраняемых в файловой системе Службы приложений, самый простой способ — с помощью браузера загрузить ZIP-файл по адресу:

  • Приложения для Linux и контейнеров: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
  • Приложения для Windows:https://<app-name>.scm.azurewebsites.net/api/dump

Для приложений Linux и контейнеров ZIP-файл содержит журналы вывода консоли для узла и для контейнера Docker. Для масштабируемого приложения ZIP-файл содержит по одному набору журналов для каждого из экземпляров. В файловой системе Службы приложений эти файлы журналов являются содержимым каталога /home/LogFiles.