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 info
dziennika . 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:
- Log4j2 (tylko wersja 2.*)
- Rejestrowanie zwrotne
- jboss-logging
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ć DEBUG
dzienniki z poziomem FATAL
, ERROR
, WARN
, INFO
, DEBUG
i nie będzie drukować dzienników z poziomem TRACE
AND ALL
.