Udostępnij za pośrednictwem


Ustawianie dynamicznego poziomu rejestratora w celu rozwiązywania problemów z aplikacjami Java w usłudze Azure Container Apps (wersja zapoznawcza)

Platforma Azure Container Apps oferuje wbudowane narzędzie diagnostyczne przeznaczone wyłącznie dla deweloperów języka Java, które ułatwia debugowanie i rozwiązywanie problemów z aplikacjami Java uruchomionymi w usłudze Azure Container Apps w sposób łatwy i wydajny. Jedną z kluczowych funkcji jest dynamiczna zmiana poziomu rejestratora, która umożliwia dostęp do szczegółów dziennika, które są domyślnie ukryte. Po włączeniu informacje dziennika są zbierane bez modyfikacji kodu ani wymuszania ponownego uruchamiania aplikacji podczas zmieniania poziomów dziennika.

Przed rozpoczęciem należy uaktualnić rozszerzenie usługi Azure Container Apps w interfejsie wiersza polecenia platformy Azure do wersji 0.3.51 lub nowszej.

az extension update --name containerapp

Włączanie diagnostyki JVM dla aplikacji Java

Przed użyciem narzędzia diagnostycznego Java należy najpierw włączyć diagnostykę maszyny wirtualnej Java (JVM) dla usługi Azure Container Apps. Ten krok umożliwia korzystanie z funkcji diagnostyki Języka Java przez wstrzyknięcie zaawansowanego agenta diagnostyki do aplikacji. Aplikacja może zostać uruchomiona ponownie podczas tego procesu.

Aby skorzystać z tych narzędzi diagnostycznych, możesz utworzyć nową aplikację kontenera z włączoną obsługą lub zaktualizować istniejącą aplikację kontenera.

Aby utworzyć nową aplikację kontenera z włączoną diagnostyką JVM, użyj następującego polecenia:

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

Aby zaktualizować istniejącą aplikację kontenera, użyj następującego polecenia:

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

Zmienianie poziomów rejestratora środowiska uruchomieniowego

Po włączeniu diagnostyki JVM można zmienić poziomy dziennika środowiska uruchomieniowego dla określonych rejestratorów w uruchomionej aplikacji Java bez konieczności ponownego uruchamiania aplikacji.

W poniższym przykładzie użyto nazwy org.springframework.boot rejestratora z poziomem infodziennika . Pamiętaj, aby zmienić te wartości tak, aby były zgodne z nazwą i poziomem rejestratora.

Użyj następującego polecenia, aby dostosować poziomy dziennika dla określonego rejestratora:

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

Zastosowanie zmiany poziomu rejestratora może potrwać do dwóch minut. Po zakończeniu możesz sprawdzić dzienniki aplikacji ze strumieni dzienników lub innych opcji dziennika.

Obsługiwane struktury rejestrowania języka Java

Obsługiwane są następujące struktury rejestrowania języka Java:

Obsługiwane poziomy dzienników przez różne struktury rejestrowania

Różne struktury rejestrowania obsługują różne poziomy dzienników. Na platformie diagnostyki JVM niektóre struktury są lepiej obsługiwane niż inne. Przed zmianą poziomów rejestrowania upewnij się, że używane poziomy dzienników są obsługiwane zarówno przez platformę, jak i platformę.

Framework WYŁ. ŚMIERTELNE BŁĄD OSTRZEC INFO DEBUG TRACE ALL
Log4j2 Tak Tak Tak Tak Tak Tak Tak Tak
Rejestrowanie zwrotne Tak Nie Tak Tak Tak Tak Tak Tak
jboss-logging Nie. Tak Tak Tak Tak Tak Tak Nie.
Platforma Tak Nie Tak Tak Tak Tak Tak Nie.

Ogólne widoczność poziomów dziennika

Poziom dziennika ŚMIERTELNE BŁĄD OSTRZEC INFO DEBUG TRACE ALL
WYŁĄCZONE
ŚMIERTELNE Tak
BŁĄD Tak Tak
OSTRZEC Tak Tak Tak
INFORMACJI Tak Tak Tak Tak
DEBUG Tak Tak Tak Tak Tak
ŚLEDZENIA Tak Tak Tak Tak Tak Tak
ALL Tak Tak Tak Tak Tak Tak Tak

Jeśli na przykład ustawisz poziom dziennika na , aplikacja będzie drukować DEBUGdzienniki z poziomem FATAL, ERROR, WARN, INFO, DEBUG i nie będzie drukować dzienników z poziomem TRACE AND ALL.