Appearance
Logs
Two kinds of logs are available for every project: the build log of a deployment, and the runtime logs of the running container. Both come from the same command.
Build logs
bash
apco logs # build log of the latest deployment
apco logs <deploymentId> # build log of a specific deployment[apco] deploy 8a41f3aa for my-app (type=ssr, channel=production)
[apco] extracting upload
[apco] no Dockerfile found — building apco/my-app:8a41f3aa from source with Railpack
[railpack] detected node app
[build] ...
[apco] release command started (channel production, timeout 300s)
[release] applying migration 004
[apco] release command completed successfully
[apco] health check http://...:3000/ (timeout 60s)
[apco] deployment is liveFind deployment ids with apco status. The build log is your first stop when a deploy ends up failed.
Optional release-command stdout/stderr uses the [release] prefix in this same log. APCO redacts known environment values and common secret forms and caps release output at 1 MiB. The deployment API/dashboard exposes only the release status, timestamps, exit code, and bounded error/skipped reason—never the command environment.
Runtime logs
Add --runtime to see what the running container is printing right now (stdout/stderr of your app):
bash
apco logs --runtime # last 200 lines
apco logs --runtime --lines 500 # more history2026-07-07T09:01:03Z Listening on :3000
2026-07-07T09:02:11Z GET / 200Runtime logs are per project (the currently running container), so a deployment id is ignored with --runtime. Target another project with --project <slug|id>.
Static sites have no runtime logs
Only SSR apps run a container. For static sites, use the build log and analytics.
Following logs
-f / --follow keeps streaming until you press Ctrl-C:
bash
apco logs -f # stream the build as it happens
apco logs --runtime -f # tail the running containerFor builds, --follow streams the log until the build finishes. For runtime logs, the CLI polls every couple of seconds and prints only new lines (--lines controls the window size per poll).
--follow and --json don't mix
Streaming would break the single-JSON-object output contract, so apco logs --follow --json is rejected (CLI_INVALID_USAGE). Scripts and agents should poll apco logs --json or apco status --json instead.
Flag summary
| Flag | Meaning |
|---|---|
[deploymentId] | Build log of a specific deployment (default: latest) |
--runtime | Running container's logs instead of the build log |
--lines <n> | Runtime log lines to fetch per poll (default 200) |
-f, --follow | Keep streaming new output until interrupted |
| `--project <slug | id>` |
Related
- Deploying apps — deployment statuses and debugging
- Analytics — request metrics in the dashboard
- CLI reference