App Platform logs and live tail, on your iPhone
App Platform logs are the build, deploy and runtime output that DigitalOcean App Platform records for each app; build and deploy logs are kept for 90 days. Duskwatch is an independent iPhone app for DigitalOcean, in development; it shows those logs on your iPhone, follows runtime logs live and shares an excerpt when you need a second pair of eyes.
Updated
Build, deploy and runtime logs
Each log answers a different question. The build log says whether your code compiled. The deploy log says whether the new version started and passed its checks. The runtime log says what the running app is doing right now. On a phone you want the right one first, so a failed deploy names the stage that failed, build or deploy.
| Log | What DigitalOcean records | Read it when |
|---|---|---|
| Build | The commands and build process used to build the app | A deploy failed before anything started |
| Deploy | The deployment to its server, with errors and warnings | The build passed but the new version never went live |
| Runtime | Messages and errors the running app emits | The app is live but misbehaving |
Lines are colour-coded by level, errors and warnings also carry a symbol, and VoiceOver reads the level, so an error reads as an error without colour. You can filter by level and search within the log, stepping from one match to the next.
App Platform keeps build and deploy logs for 90 days. To retain runtime logs, DigitalOcean says to forward them to an external provider.
DigitalOcean docs: view App Platform logs (external link), verified
Crash logs record the output from an instance before it crashed, with a potential reason for the crash.
DigitalOcean docs: view App Platform logs (external link), verified
Live tail, like doctl on a laptop
On a laptop you would run "doctl apps logs api-prod --follow" and watch. Live tail is the same idea on the phone: runtime lines appear as the app writes them. The view follows the newest line until you scroll up to read, and a Follow button takes you back to the bottom. It is the quickest way to see whether a restart or a rollback actually fixed the errors.
The doctl flag --follow returns logs as they are emitted by the app, and --type selects the log type, such as build, deploy or run, with run as the default.
From a failed deploy to the failing lines
When a deploy fails, the first question is whether users are affected. The deploy card answers it before you read a single log line: the previous version is still serving traffic.
Deploy failed
Still live: 3f2a91c · since 22:40
Likely cause: api didn't pass its health check
The likely cause comes from DigitalOcean's reason for the failed step or from log lines you have already opened, and it is labelled as likely. From there, open the log of that stage. If the same failure repeats, the app says so, which usually means the fix belongs in code and not in another redeploy. More on deploys on the App Platform page.
Where your logs go
Logs travel only between your iPhone and DigitalOcean, using the sign-in on your iPhone. The alert server never reads them and never stores them, and there are no alerts on log contents. If you need runtime logs for longer than App Platform keeps them, forward them from DigitalOcean to a log provider; the app is a reader, not an archive. The full data map is on the security page.
What Duskwatch doesn't do here
- No droplet or system logs: use your SSH app for those.
- No log storage or archive: logs are read live from DigitalOcean.
- No alerts on log lines or patterns.
- No log forwarding setup: configure that in DigitalOcean.
- No Kubernetes pod logs: use a Kubernetes client for workloads.
Questions
Can I tail App Platform logs from my phone?
Yes. Live tail shows runtime lines as your app writes them, like "doctl apps logs --follow" on a laptop.
Which logs can I read?
Build, deploy and runtime logs for each App Platform component. A failed deploy names the stage that failed, so you know which log to read.
Do you store my logs?
No. Logs travel only between your iPhone and DigitalOcean, and the alert server never sees them.
Can I see droplet logs?
No. Duskwatch reads App Platform logs only; for a droplet, open it in your SSH app from the droplet screen.
How do I share a few lines with a teammate?
Long-press to select the lines, then tap Share excerpt. The excerpt carries a header with the app, component, log type, deployment and UTC time range, and DigitalOcean tokens it recognizes are removed.