Application Logs
This page covers deployments running in your own Azure subscription (managed by us or by you). For an on-premises Docker install, see Application Logs (On-Premises).
Because the infrastructure runs in your subscription, you already have full access to every log line. Nothing extra needs to be installed, and there is no separate log CLI: you read the logs with the Azure tools you already have.
Where your logs live
The application and its workflow workers write to standard output. Azure Container Apps ships that output to the Log Analytics workspace in your resource group, where it lands in the ContainerAppConsoleLogs_CL table. Application-level traces and metrics also flow to Application Insights in the same resource group.
Two extra sources are worth knowing about:
- Azure Activity Log records every resource change, including each deployment. Use it to answer "what changed, and when".
- Processing history per transaction is in the product itself, not in the platform logs. Open a transaction and look at its history to see which steps ran and how long they took. That is usually the faster place to start for a single failed document.
Reading the logs
Live stream (Azure Portal)
Open your resource group, select the DocAI Fabric container app, then Monitoring → Log stream. This tails the running replica, which is the quickest way to watch a document being processed.
Live stream (Azure CLI)
az containerapp logs show \
--name <your-container-app-name> \
--resource-group <your-resource-group> \
--follow
Querying history (Log Analytics)
The Portal path is Log Analytics workspace → Logs, then run a KQL query. The last 100 errors:
ContainerAppConsoleLogs_CL
| where TimeGenerated > ago(24h)
| where Log_s contains "ERROR"
| order by TimeGenerated desc
| take 100
Everything logged around one transaction (paste its ID):
ContainerAppConsoleLogs_CL
| where TimeGenerated > ago(7d)
| where Log_s contains "<transaction-id>"
| order by TimeGenerated asc
| project TimeGenerated, Log_s
The same query from a terminal:
az monitor log-analytics query \
--workspace <your-log-analytics-workspace-id> \
--analytics-query "ContainerAppConsoleLogs_CL | where Log_s contains 'ERROR' | order by TimeGenerated desc | take 100"
Log Analytics is not instant: expect a delay of a minute or two before a new line becomes queryable. Use the live stream when you need to see something as it happens.
What to look for
Every line is prefixed with a level (INFO, WARNING, ERROR). When you report an issue to us, the fastest thing to send is the last ERROR block plus the few lines above it, which usually name the transaction or the processing step that failed. You never need to share a whole log.