Поделиться через


Настройка уровня динамического ведения журнала для устранения неполадок приложений Java в приложениях контейнеров Azure (предварительная версия)

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

Прежде чем приступить к работе, необходимо обновить расширение Azure Container Apps в Azure CLI до версии 0.3.51 или более поздней.

az extension update --name containerapp

Включение диагностика JVM для приложений Java

Перед использованием средства java диагностика необходимо сначала включить диагностика виртуальных машин Java (JVM) для приложений контейнеров Azure. Этот шаг позволяет использовать функции Java диагностика путем внедрения расширенного агента диагностика в приложение. Приложение может перезапуститься во время этого процесса.

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

Чтобы создать приложение-контейнер с поддержкой JVM диагностика, используйте следующую команду:

az containerapp create --enable-java-agent \
  --environment <ENVIRONMENT_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --name <CONTAINER_APP_NAME>

Чтобы обновить существующее приложение контейнера, используйте следующую команду:

az containerapp update --enable-java-agent \
  --resource-group <RESOURCE_GROUP> \
  --name <CONTAINER_APP_NAME>

Изменение уровней средства ведения журнала среды выполнения

После включения диагностика JVM можно изменить уровни журналов среды выполнения для определенных средств ведения журнала в работающем приложении Java без необходимости перезапускать приложение.

В следующем примере используется имя org.springframework.boot средства ведения журнала с уровнем infoжурнала. Обязательно измените эти значения, чтобы они соответствовали имени и уровню средства ведения журнала.

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

az containerapp java logger set \
  --logger-name "org.springframework.boot" \
  --logger-level "info"
  --resource-group <RESOURCE_GROUP> \
  --name <CONTAINER_APP_NAME>

Чтобы изменить уровень средства ведения журнала, может потребоваться до двух минут. После завершения можно проверить журналы приложений из потоков журналов или других параметров журнала.

Поддерживаемые платформы ведения журнала Java

Поддерживаются следующие платформы ведения журнала Java:

Поддерживаемые уровни журналов различными платформами ведения журнала

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

Платформа ВЫКЛ. FATAL ОШИБКА WARN INFO ОТЛАДКА ТРАССИРОВКА
Log4j2 Да Да Да Да Да Да Да
Logback Да No Да Да Да Да Да
jboss-logging No Да Да Да Да Да Да
Платформа Да No Да Да Да Да Да

Общая видимость уровней журнала

Уровень журнала FATAL ОШИБКА WARN INFO ОТЛАДКА ТРАССИРОВКА
OFF
РОКОВОЙ Да
ERROR Да Да
ПРЕДУПРЕЖДАТЬ Да Да Да
ИНФОРМАЦИЯ Да Да Да Да
ОТЛАЖИВАТЬ Да Да Да Да Да
TRACE Да Да Да Да Да Да

Например, если вы настроили уровень INFOжурнала, приложение печатает журналы с уровнем FATAL, ERROR, и WARNINFOне печатает журналы с уровнем DEBUG иTRACE.