設定動態記錄器層級以針對 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 8 或更新版本上執行的應用程式相容。
為您的 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 記錄架構:
- Log4j2 (僅限 2.*版)
- Logback
- jboss-logging
依不同的記錄架構支援記錄層級
不同的記錄架構支援不同的記錄層級。 在 JVM 診斷平臺中,某些架構比其他架構支援得更好。 變更記錄層級之前,請確定架構和平台支援您使用的記錄層級。
架構 | OFF | FATAL | 錯誤 | WARN | INFO | 偵錯 | TRACE |
---|---|---|---|---|---|---|---|
Log4j2 | Yes | .是 | .是 | .是 | .是 | .是 | Yes |
Logback | 是 | 無 | .是 | .是 | .是 | .是 | Yes |
jboss-logging | No | .是 | .是 | .是 | .是 | .是 | Yes |
平台 | 是 | 無 | .是 | .是 | .是 | .是 | Yes |
記錄層級的一般可見性
記錄層級 | FATAL | 錯誤 | WARN | INFO | 偵錯 | TRACE |
---|---|---|---|---|---|---|
OFF | ||||||
致命 | Yes | |||||
錯誤 | Yes | Yes | ||||
警告 | Yes | .是 | Yes | |||
資訊 | Yes | .是 | .是 | Yes | ||
調試 | Yes | .是 | .是 | .是 | Yes | |
TRACE | Yes | .是 | .是 | .是 | .是 | Yes |
例如,如果您將記錄層級設定為 INFO
,則應用程式會以層級、ERROR
、WARN
、 INFO
和 來列印具有層級FATAL
DEBUG
和 TRACE
的記錄檔。