Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure предоставляет встроенную диагностику для отладки приложения Службы приложений Azure. Из этой статьи вы узнаете, как включить ведение журнала диагностики и добавить инструментирование в приложение. Вы также узнаете, как получить доступ к информации из журналов Azure.
Примечание.
Начиная с 1 июня 2024 года только что созданные приложения службы приложений могут создать уникальное имя узла по умолчанию, использующее соглашение об именовании <app-name>-<random-hash>.<region>.azurewebsites.net
. Например: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
. Существующие имена приложений остаются неизменными.
Дополнительные сведения см. в записи блога о создании веб-приложения с уникальным именем узла по умолчанию.
В этой статье используется портал Azure и Azure CLI для работы с журналами диагностики. Сведения о работе с журналами диагностики с помощью Visual Studio см. в статье "Устранение неполадок приложения в службе приложений Azure" с помощью Visual Studio.
Помимо инструкций по ведению журнала в этой статье, можно использовать встроенную функцию ведения журнала Azure Monitor. Дополнительные сведения см. в статье "Отправка журналов в Azure Monitor".
Примечание.
Служба приложений предоставляет выделенное интерактивное средство диагностики для устранения неполадок с приложением. Дополнительные сведения см. в статье Обзор диагностики Службы приложений Azure.
Вы также можете использовать другие службы Azure для улучшения возможностей ведения журнала и мониторинга приложения, таких как Azure Monitor.
Обзор типов логирования
Тип | Платформа | Расположение хранилища журналов | Описание |
---|---|---|---|
Ведение журнала приложения | Windows, Linux | Файловая система службы приложений и/или объекты BLOB хранилища Azure | Регистрируйте сообщения, создаваемые кодом приложения. Сообщения можно создавать с помощью выбранной веб-платформы или из кода приложения непосредственно с помощью стандартного шаблона ведения журнала языка. Каждое сообщение назначается одной из следующих категорий: критическая, ошибка, предупреждение, информация, отладка или трассировка. Можно выбрать, насколько подробным будет протоколирование, установив уровень серьезности при включении ведения приложения журнала. |
Ведение журнала веб-сервера | Windows | Файловая система службы приложений App Service или блобы хранилища Azure | Необработанные данные HTTP-запросов в расширенном формате файла журнала W3C. Каждое сообщение журнала содержит такие данные, как метод HTTP, URI ресурса, IP-адрес клиента, порт клиента, агент пользователя и код ответа. |
Подробные сообщения об ошибках | Windows | Файловая система Службы приложений | Копии страниц ошибок .htm, которые были отправлены в клиентский браузер. По соображениям безопасности подробные страницы ошибок не должны отправляться клиентам в рабочей среде. Но служба приложений может сохранять страницу ошибок при каждом возникновении ошибки приложения с кодом HTTP 400 или более поздней версии. Страница может содержать сведения, которые помогут определить, почему сервер возвращает код ошибки. |
Трассировка неудавшихся запросов | Windows | Файловая система Службы приложений | Подробные сведения о невыполненных запросах, включая трассировку компонентов IIS, использованных для обработки запроса, и время, потраченное для каждого компонента. Эта информация полезна, если вы хотите повысить производительность сайта или изолировать определенную ошибку HTTP. Одна папка создается для каждого неудачного запроса. Папка содержит XML-файл журнала и таблицу стилей XSL для просмотра файла журнала. |
Ведение журнала развертывания | Windows, Linux | Файловая система Службы приложений | Регистрируется при публикации содержимого в приложении. Ведение журнала развертывания происходит автоматически, и настраиваемые параметры для ведения журнала развертывания отсутствуют. Он помогает определить, почему произошло сбой развертывания. Например, если выполняется пользовательский сценарий развертывания, то по журналу развертывания можно выяснить, почему сценарий завершился ошибкой. |
Если журналы хранятся в файловой системе службы приложений, их объем ограничен доступным хранилищем, предусмотренным для вашего уровня тарифа. Более подробную информацию см. в разделе ограничения Службы приложений.
Включение логирования приложений (Windows)
Чтобы включить ведение журнала приложений для приложений Windows на портале Azure, выполните следующие действия.
Перейдите к вашему приложению и выберите мониторинг>журналы службы приложений.
Выберите "Вкл." для обоих из следующих параметров:
Ведение журнала приложений (файловая система): этот параметр предназначен для временного отладки. Она отключается через 12 часов.
Ведение журнала приложений (Blob): этот параметр предназначен для долговременного ведения журнала. Для записи журналов в него требуется контейнер блоб-хранилища.
Параметр Blob включает дополнительные сведения в сообщения журнала, такие как идентификатор исходного виртуального экземпляра машины сообщения журнала (
InstanceId
), идентификатор потока (Tid
) и более точную временную метку (EventTickCount
).
Для Уровня выберите уровень детализации для ведения журнала. В следующей таблице приведены категории ведения журналов, входящие в каждый из уровней.
Уровень Включенные категории Отключен нет Ошибка Ошибка, критическое Предупреждения Предупреждение, ошибка, критическое Информация Сведения, предупреждение, ошибка, критически важные Подробный Трассировка, отладка, информация, предупреждение, ошибка, критические (все категории) Выберите Сохранить.
При занесении журналов в большие двоичные объекты политика хранения более не применяется, если вы удаляете приложение, но сохраняете журналы в больших двоичных объектах. Дополнительные сведения см. в разделе Затраты, которые могут быть начислены после удаления ресурса.
В настоящее время в хранилище BLOB-объектов можно записывать только журналы приложений .NET. Журналы приложений Java, PHP, Node.jsи Python можно хранить только в файловой системе службы приложений без изменений кода для записи журналов во внешнее хранилище.
При повторном создании ключей доступа учетной записи хранения необходимо перенастроить конфигурацию ведения журнала, чтобы использовать обновленные ключи доступа.
На вкладке "Настройка" установите для соответствующей функции ведения журнала значение Off. Сохраните вашу настройку.
Снова включите ведение журнала в блоб хранилища. Сохраните вашу настройку.
Включение ведения журнала приложений (Linux или контейнера)
Чтобы включить ведение журнала приложений для приложений Linux или пользовательских контейнеров на портале Azure, выполните следующие действия.
Перейдите к вашему приложению и выберите мониторинг>журналы службы приложений.
В поле Ведение журнала приложений выберите Файловая система.
В поле Квота (МБ) укажите квоту диска для журналов приложений.
В период хранения (дни) задайте количество дней для хранения журналов.
Выберите Сохранить.
Включение ведения журналов веб-сервера
Чтобы включить ведение журнала веб-сервера для приложений Windows на портале Azure, выполните следующие действия.
Перейдите к вашему приложению и выберите мониторинг>журналы службы приложений.
Для ведения журнала веб-сервера выберите хранилище для записи журналов в объектное хранилище BLOB или выберите файловую систему для сохранения журналов в файловой системе Службы приложений.
В период хранения (дни) задайте количество дней для хранения журналов.
Выберите Сохранить.
При занесении журналов в большие двоичные объекты политика хранения более не применяется, если вы удаляете приложение, но сохраняете журналы в больших двоичных объектах. Дополнительные сведения см. в разделе Затраты, которые могут быть начислены после удаления ресурса.
При повторном создании ключей доступа учетной записи хранения необходимо обновить соответствующую конфигурацию ведения журнала, чтобы использовать новые ключи.
На вкладке "Настройка" установите для соответствующей функции ведения журнала значение Off. Сохраните вашу настройку.
Снова включите ведение журнала в блоб хранилища. Сохраните вашу настройку.
Логировать подробные ошибки
Чтобы сохранить страницу ошибки или трассировки неудачных запросов для приложений Windows на портале Azure:
Перейдите к вашему приложению и выберите мониторинг>журналы службы приложений.
В разделе "Подробные сообщения об ошибках " или "Трассировка неудачных запросов" нажмите кнопку "Вкл.".
Выберите Сохранить.
Оба типа журналов хранятся в файловой системе Службы приложений. Он сохраняет до 50 ошибок (файлов или папок). Если число HTML-файлов превышает 50, служба приложений удаляет самые старые файлы ошибок.
По умолчанию трассировка неудачных запросов ведет запись запросов, завершившихся неудачей с кодами состояния HTTP в диапазоне от 400 до 600. Чтобы указать пользовательские правила, переопределите раздел <traceFailedRequests>
в файле Web.config
.
Добавление сообщений журнала в код
В коде приложения можно использовать обычные средства ведения журнала для отправки сообщений журнала в журналы приложений. Например:
ASP.NET приложения могут использовать класс System.Diagnostics.Trace для регистрации сведений в журнал диагностики приложения. Например:
System.Diagnostics.Trace.TraceError("If you're seeing this, something bad happened");
По умолчанию ASP.NET Core использует поставщик ведения журналов Microsoft.Extensions.Logging.AzureAppServices. Дополнительные сведения см. в разделе о ведении журнала ASP.NET Core в Azure. Сведения о ведении журнала пакета SDK для веб-заданий см. в статье "Начало работы с пакетом SDK для веб-заданий Azure".
Приложения Python могут использовать OpenTelemetry для отправки журналов в журнал диагностики приложения. Дополнительные сведения см. в разделе "Включить Azure Monitor OpenTelemetry".
Логи потока
Прежде чем выполнять потоковую передачу журналов в режиме реального времени, включите нужный тип журнала. Служба приложений передает все данные, записанные в выходные данные консоли или файлы, заканчивающиеся .txt, .log или .htm, хранящиеся в каталоге /home/LogFiles
(D:\home\LogFiles
).
Примечание.
Некоторые типы буферов ведения журнала записываются в файл журнала, что может привести к отображению событий в неправильном порядке в потоке. Например, запись журнала приложений, возникающая при посещении пользователем страницы, может отображаться в потоке перед соответствующей записью http-журнала для запроса страницы.
Портал Azure
Чтобы передавать журналы на портале Azure, перейдите в приложение и выберите Мониторинг>Поток журналов.
Cloud Shell
Для потоковой передачи журналов в Azure Cloud Shell используйте следующую команду.
Внимание
Эта команда может не работать с веб-приложениями, размещенными в плане службы приложений на основе Linux.
az webapp log tail --name appname --resource-group myResourceGroup
Чтобы отфильтровать определенные типы журналов, например HTTP, используйте --provider
этот параметр. Например:
az webapp log tail --name appname --resource-group myResourceGroup --provider http
Локальный терминал
Чтобы передавать журналы в локальной консоли, установите Azure CLI и войдите в учетную запись. После входа выполните инструкции по Cloud Shell.
Файлы журнала доступа
Если вы настраиваете опцию больших двоичных объектов Azure Storage для типа журнала, вам нужно клиентское средство, которое работает с Azure Storage. Дополнительные сведения см. в статье о клиентских средствах Майкрософт для работы с службой хранилища 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, так и для контейнера Docker. Для масштабируемого приложения ZIP-файл содержит по одному набору журналов для каждого из экземпляров. В файловой системе службы приложений эти файлы журналов /home/LogFiles
являются содержимым каталога. Журналы развертывания хранятся в /site/deployments/
.
Для приложений Windows ZIP-файл содержит содержимое D:\Home\LogFiles
каталога в файловой системе службы приложений. Он имеет следующую структуру:
Тип журнала | каталог | Описание |
---|---|---|
Журнал приложений | /LogFiles/Application/ |
Содержит один или несколько текстовых файлов. Формат сообщений журнала зависит от используемого поставщика ведения журнала. |
Отслеживание неудачных запросов | /LogFiles/W3SVC#########/ |
Содержит XML-файлы и XSL-файл. Отформатированные XML-файлы можно просмотреть в браузере. |
Подробный журнал ошибок | /LogFiles/DetailedErrors/ |
Содержит файлы ошибок HTML. HTM-файлы можно просмотреть в браузере. Другим способом просмотра трассировки неудачных запросов является переход на страницу приложения на портале. В меню слева выберите Диагностируйте и решайте проблемы. Найдите журналы трассировки неудачных запросов, а затем выберите значок, чтобы просмотреть нужную трассировку. |
Журнал веб-сервера | /LogFiles/http/RawLogs/ |
Содержит текстовые файлы, отформатированные с помощью формата расширенного файла журнала W3C. Эти файлы можно прочитать с помощью текстового редактора или средства, например Log Parser. Служба приложений не поддерживает поля s-computername , s-ip и cs-version . |
Журнал развертывания |
/LogFiles/Git/ и /deployments/ . |
Содержит журналы, созданные внутренними процессами развертывания, а также журналы для развертываний Git. |
Отправка журналов в Azure Monitor
Интеграция Azure Monitor позволяет создавать параметры диагностики для отправки журналов в учетные записи хранения, центры событий и рабочие области Log Analytics. При добавлении параметра диагностики Служба приложений добавляет параметры приложения в приложение, которое активирует перезапуск приложения.
Поддерживаемые типы журналов
Список поддерживаемых типов журналов и их описания см. в разделе "Поддерживаемые журналы ресурсов" для Microsoft.Web.
Рекомендации по сети
Сведения об ограничениях для параметров диагностики см. в разделе "Ограничения назначения".