共用方式為


設定動態記錄器層級以針對 Azure Container Apps 中的 Java 應用程式進行疑難解答 (預覽)

Azure Container Apps 平臺提供專為 Java 開發人員提供的內建診斷工具,可協助開發人員更輕鬆且有效率地偵錯和疑難解答其在 Azure Container Apps 上執行的 Java 應用程式。 其中一個主要功能是動態記錄器層級變更,可讓您存取預設隱藏的記錄詳細數據。 啟用時,會收集記錄資訊,而不需修改程序代碼,或強制您在變更記錄層級時重新啟動應用程式。

開始之前,您必須將 Azure CLI 中的 Azure Container Apps 擴充功能升級至 0.3.51 版或更高版本。

az extension update --name containerapp

為您的 Java 應用程式啟用 JVM 診斷

使用 Java 診斷工具之前,您必須先為您的 Azure Container Apps 啟用 Java 虛擬機 (JVM) 診斷。 此步驟會藉由將進階診斷代理程式插入您的應用程式,來啟用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 診斷平臺中,某些架構比其他架構支援得更好。 變更記錄層級之前,請確定架構和平臺都支援您使用的記錄層級。

架構 OFF FATAL 錯誤 WARN INFO 偵錯 TRACE ALL
Log4j2 Yes .是 .是 .是 .是 .是 .是 Yes
Logback .是 .是 .是 .是 .是 Yes
jboss-logging No .是 .是 .是 .是 .是 .是 No
平台 .是 .是 .是 .是 .是 No

記錄層級的一般可見性

記錄層級 FATAL 錯誤 WARN INFO 偵錯 TRACE ALL
OFF
致命 Yes
錯誤 Yes Yes
警告 Yes .是 Yes
資訊 Yes .是 .是 Yes
調試 Yes .是 .是 .是 Yes
TRACE Yes .是 .是 .是 .是 Yes
ALL Yes .是 .是 .是 .是 .是 Yes

例如,如果您將記錄層級設定為 DEBUG,則您的應用程式會以層級 、ERRORWARNDEBUG INFO和 來列印具有層級 FATALTRACE AND ALL的記錄檔。