在 Azure 容器应用中查看日志流

在开发容器应用及排查其问题时,实时查看容器应用的日志至关重要。 Azure 容器应用允许流式传输:

可以通过 Azure 门户或 Azure CLI 访问日志流。

通过 Azure 门户查看日志流

可以在 Azure 门户中查看系统日志和控制台日志。 系统日志由容器应用的运行时生成。 控制台日志由容器应用生成。

环境系统日志流

若要排查容器应用环境中的问题,可以从环境页查看系统日志流。 日志流显示容器应用服务以及在环境中活跃运行的应用的系统日志:

  1. 在 Azure 门户中转到你的环境。

  2. 在边栏菜单上的“监视”部分下选择“日志流”。

    Screenshot of Container Apps environment system log stream page.

容器应用日志流

可以在容器应用页中查看容器应用的系统或控制台日志的日志流。

  1. 在 Azure 门户中转到你的容器应用。

  2. 在边栏菜单上的“监视”部分下选择“日志流”。

  3. 若要查看控制台日志流,请选择“控制台”。

    1. 如果有多个修订版、副本或容器,可以从下拉菜单中选择一个容器。 如果应用只有一个容器,则可以跳过此步骤。

    Screenshot of Container Apps console log stream from app page.

  4. 若要查看系统日志流,请选择“系统”。 系统日志流显示容器应用中所有正在运行的容器的系统日志。

    Screenshot of Container Apps system log stream from app page.

通过 Azure CLI 查看日志流

可以在 Azure CLI 中使用 az containerapp logs show 命令查看容器应用的日志流,或者使用 az containerapp env logs show 命令查看容器应用的环境系统日志流。

使用以下参数控制日志流:

  • --tail(默认值)查看最后 n 条日志消息。 值为 0-300 条消息。 默认值为 20。
  • --follow 查看日志消息的连续实时流。

流式传输容器应用日志

可以流式传输容器应用的系统或控制台日志。 若要流式传输容器应用系统日志,请使用值为 system--type 参数。 若要流式传输容器控制台日志,请使用值为 console--type 参数。 默认为 console

查看容器应用系统日志流

此示例使用 --tail 参数显示容器应用中的最后 50 条系统日志消息。 将 <占位符> 替换为你的容器应用的值。

az containerapp logs show \
  --name <ContainerAppName> \
  --resource-group <ResourceGroup> \
  --type system \
  --tail 50

此示例使用 --follow 参数显示容器应用中系统日志消息的连续实时流。 将 <占位符> 替换为你的容器应用的值。

az containerapp logs show \
  --name <ContainerAppName> \
  --resource-group <ResourceGroup> \
  --type system \
  --follow

使用 Ctrl-CCmd-C 停止实时流。

查看容器控制台日志流

若要连接到有多个修订版、副本和容器的容器应用中的容器控制台日志流,请在 az containerapp logs show 命令中包含以下参数。

参数 说明
--revision 修订版名称。
--replica 修订版中的副本名称。
--container 要连接到的容器名称。

可使用 az containerapp revision list 命令获取修订名称。 将 <占位符> 替换为你的容器应用的值。

az containerapp revision list \
  --name <ContainerAppName> \
  --resource-group <ResourceGroup> \
  --query "[].name"

使用 az containerapp replica list 命令获取副本和容器名称。 将 <占位符> 替换为你的容器应用的值。

az containerapp replica list \
  --name <ContainerAppName> \
  --resource-group <ResourceGroup> \
  --revision <RevisionName> \
  --query "[].{Containers:properties.containers[].name, Name:name}"

使用带有 --follow 参数的 az container app show 命令实时流式传输容器控制台。 将 <占位符> 替换为你的容器应用的值。

az containerapp logs show \
  --name <ContainerAppName> \
  --resource-group <ResourceGroup> \
  --revision <RevisionName> \
  --replica <ReplicaName> \
  --container <ContainerName> \
  --type console \
  --follow

使用 Ctrl-CCmd-C 停止实时流。

使用带有 --tail 参数的 az containerapp logs show 命令查看最后 50 条控制台日志消息。 将 <占位符> 替换为你的容器应用的值。

az containerapp logs show \
  --name <ContainerAppName> \
  --resource-group <ResourceGroup> \
  --revision <RevisionName> \
  --replica <ReplicaName> \
  --container <ContainerName> \
  --type console \
  --tail 50

查看环境系统日志流

结合 --follow 参数使用以下命令,以查看容器应用环境中的实时系统日志流。 请将 <占位符> 替换为你的环境值。

az containerapp env logs show \
  --name <ContainerAppEnvironmentName> \
  --resource-group <ResourceGroup> \
  --follow

使用 Ctrl-CCmd-C 停止实时流。

此示例使用 --tail 参数显示最后 50 条环境系统日志消息。 请将 <占位符> 替换为你的环境值。

az containerapp env logs show \
  --name <ContainerAppName> \
  --resource-group <ResourceGroup> \
  --tail 50