Dela via


Ange dynamisk loggningsnivå för att felsöka Java-program i Azure Container Apps (förhandsversion)

Azure Container Apps-plattformen erbjuder ett inbyggt diagnostikverktyg exklusivt för Java-utvecklare som hjälper dem att felsöka och felsöka sina Java-program som körs på Azure Container Apps på ett enklare och effektivare sätt. En av de viktigaste funktionerna är en dynamisk ändring på loggningsnivå, som gör att du kan komma åt logginformation som är dold som standard. När den är aktiverad samlas logginformation in utan kodändringar eller tvingar dig att starta om appen när du ändrar loggnivåer.

Innan du kommer igång måste du uppgradera Azure Container Apps-tillägget i Azure CLI till version 0.3.51 eller senare.

az extension update --name containerapp

Aktivera JVM-diagnostik för dina Java-program

Innan du använder Java-diagnostikverktyget måste du först aktivera JVM-diagnostik (Java Virtual Machine) för dina Azure Container Apps. Det här steget aktiverar Java-diagnostikfunktioner genom att mata in en avancerad diagnostikagent i din app. Din app kan startas om under den här processen.

Om du vill dra nytta av de här diagnostikverktygen kan du skapa en ny containerapp med dem aktiverade eller uppdatera en befintlig containerapp.

Om du vill skapa en ny containerapp med JVM-diagnostik aktiverad använder du följande kommando:

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

Om du vill uppdatera en befintlig containerapp använder du följande kommando:

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

Ändra körningsloggningsnivåer

När du har aktiverat JVM-diagnostik kan du ändra körningsloggnivåerna för specifika loggare i java-appen som körs utan att behöva starta om programmet.

I följande exempel används loggningsnamnet org.springframework.boot med loggnivån info. Se till att ändra dessa värden så att de matchar ditt eget loggningsnamn och nivå.

Använd följande kommando för att justera loggnivåerna för en specifik loggare:

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

Det kan ta upp till två minuter innan ändringen på loggningsnivå börjar gälla. När du är klar kan du kontrollera programloggarna från loggströmmar eller andra loggalternativ.

Java-loggningsramverk som stöds

Följande Java-loggningsramverk stöds:

Loggnivåer som stöds av olika loggningsramverk

Olika loggningsramverk stöder olika loggnivåer. I JVM-diagnostikplattformen stöds vissa ramverk bättre än andra. Innan du ändrar loggningsnivåer kontrollerar du att ramverket och plattformen stöder de loggnivåer som du använder.

Ramverk OFF DÖDLIG ERROR VARNA INFO FELSÖKNING SPÅRNING
Log4j2 Ja Ja Ja Ja Ja Ja Ja
Tillbakaloggning Ja No Ja Ja Ja Ja Ja
jboss-logging Nej Ja Ja Ja Ja Ja Ja
Plattform Ja No Ja Ja Ja Ja Ja

Allmän synlighet för loggnivåer

Loggningsnivå DÖDLIG ERROR VARNA INFO FELSÖKNING SPÅRNING
BORT
DÖDLIG Ja
FEL Ja Ja
VARNA Ja Ja Ja
INFORMATION Ja Ja Ja Ja
FELSÖKA Ja Ja Ja Ja Ja
SPÅRA Ja Ja Ja Ja Ja Ja

Om du till exempel anger loggnivå till INFOskriver appen ut loggar med nivån FATAL, ERROR, WARN, INFOoch skriver INTE ut loggar med nivå DEBUG och TRACE.