Skip to content

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.

App Platform log types and when you read each one
LogWhat DigitalOcean recordsRead it when
BuildThe commands and build process used to build the appA deploy failed before anything started
DeployThe deployment to its server, with errors and warningsThe build passed but the new version never went live
RuntimeMessages and errors the running app emitsThe 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.

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.

    doctl reference: apps logs (external link), verified

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.

The deploy card after a failed deploy

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.

Share an excerpt, not the whole log

At night the useful thing to send a teammate is twenty lines, not a log dump. Long-press a line, extend the selection, and share it through the iOS share sheet or copy it. The excerpt starts with a header naming the app, component, log type, deployment and time range in UTC, so whoever reads it knows exactly where it came from.

  • The app removes DigitalOcean tokens it recognizes from the excerpt, and nothing else.
  • Logs can hold secrets and personal data, such as IP addresses and emails, so the selection bar reminds you to check before you share or copy.
  • Nothing is shared until you tap Share excerpt; there is no automatic upload.

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.

Duskwatch is in development. Join the waitlist to hear when it's on the App Store.

We'll email you once when Duskwatch is on the App Store. One-click unsubscribe. How we handle your data

Basic monitoring is free; alerts, most actions and advanced features are part of Duskwatch Pro.