Logs
Every service in an app produces a live log stream you can view in the console. Koo captures everything your service writes to standard output and standard error — no agent or logging library required.
View logs in the console
- Open your app and select the service you want to inspect.
- Open the Logs tab.
- New lines appear as your service writes them — the tail is live. Scroll up to load earlier lines, back to the start of your plan's retention window.
Logs are per service: a web service, a Postgres service, and a Redis service each have their own stream. Switch services to switch streams.
Logs are fetched live from Koo's hosting layer each time you open the tab; Koo does not warehouse them. You can also stream a service's logs programmatically through the observability API, authenticated with an API token.
Retention by plan
How far back you can scroll depends on your plan. Retention windows for Free, Plus, and Pro are listed in the plan comparison on the free tier page and on your account's billing page.
Logs older than your plan's retention window are gone — there is no archive to restore from. If you need logs long-term, forward them to your own log store from inside your service.
Build logs vs runtime logs
Everything on this page describes runtime logs: output from your running service. A container deploy brings a prebuilt image, so it has no build step and no build logs.
Build logs come with deploys from Git: each build's output lands on its deployment in the deploy timeline, separate from the service's runtime stream. See Builds.
Tips
- Write to stdout and stderr, not files. Koo only captures the standard streams, and a service's filesystem does not survive a new deployment.
- Log structured JSON lines. One JSON object per line is easy to scan in the live tail and easy to parse if you forward logs elsewhere.
- Include a request ID in every line. Emitting the same ID across all lines for one request lets you follow it through interleaved output.
- Never log secrets. Keep environment values, API tokens (
kc_…), and user data out of log lines — logs are visible to other members of your account.