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


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

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

Прежде чем приступить к работе, необходимо проверить расширение "Приложения контейнеров Azure" в Azure CLI:

az extension show --name containerapp

Если расширение не установлено, сначала установите его. Если установлено расширение "Приложения контейнеров Azure", оно должно быть версии 0.3.51 или более поздней.

az extension add -n containerapp

Примечание.

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

Включение диагностика 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 диагностика некоторые платформы лучше поддерживаются, чем другие. Перед изменением уровней ведения журнала убедитесь, что платформа и платформа поддерживают уровни журналов, которые вы используете.

Платформа ВЫКЛ. Фатальный ОШИБКА ПРЕДУПРЕЖДЕНИЕ ИНФО ОТЛАДКА ТРАССИРОВКА
Log4j2 Да Да Да Да Да Да Да
Обратный вход Да нет Да Да Да Да Да
jboss-logging (логирование в JBoss) нет Да Да Да Да Да Да
Платформа Да нет Да Да Да Да Да

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

Уровень журнала Фатальный ОШИБКА ПРЕДУПРЕЖДЕНИЕ ИНФО ОТЛАДКА ТРАССИРОВКА
Выкл.
РОКОВОЙ Да
ОШИБКИ Да Да
ПРЕДУПРЕЖДАТЬ Да Да Да
ИНФОРМАЦИЯ Да Да Да Да
ОТЛАЖИВАТЬ Да Да Да Да Да
СЛЕД Да Да Да Да Да Да

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