Logs
The project's Logs page separates three sources that are commonly conflated. They have different authors, and calling all three "logs" sends someone hunting for an application error in a place that only holds the deployment's narrative.
| Tab | Who wrote it | When to look here |
|---|---|---|
| Runtime | Your application, on stdout and stderr | The application started and something is wrong with its behavior |
| Build | The image builder | The deployment failed before starting up |
| Platform | Zero, while deploying | To understand what the platform did, and in what order |
"The platform said the version is live" and "the application said it could not connect to the database" are sentences from different authors.
Runtime
The standard output and error output of your application's processes. The tab opens on the latest lines of the period, with the most recent at the bottom, and follows live: each new line appears within a few seconds.
- Choose the period — last hour, 6 hours, 24 hours, or 7 days — and, if there is more than one service, the service.
- Filter by level and search by text.
- Pause freezes the screen so you can read calmly; Resume live goes back to following without losing what arrived in the meantime.
- If you scroll up to read, the screen stays where it is and shows New lines ↓ when something arrives.
- Load earlier brings the lines from before, within the period.
- Download delivers a file with the whole period, with the chosen filters — from the oldest line to the most recent, with each line's service, environment, instance, and level.
- Copy what is on screen with Copy all.
The screen keeps up to 5,000 lines. When following goes past that, the oldest leave the screen — and remain in the Download file.
How long the log is kept
- 7 days. After that, the lines are deleted.
- Up to 50,000 lines per service, per day (UTC). An application that goes past that — a loop printing the same error nonstop, for example — has the rest of that day discarded, and the screen says so: a service reached the limit of 50000 lines in a day. Recording resumes the next day.
- A line longer than 8 KB is cut at the limit, and the screen says so.
With the CLI, the same log: zero logs --project <project> --follow follows live, and zero logs --project <project> --all --from 7d > app.log writes the whole period to a file. See CLI.
If no application is running yet, the answer is explicit: there is no run yet. Never an empty list — empty would mean "it ran and wrote nothing", and confusing the two sends you looking in the wrong place.
For the application to appear here, it has to write to stdout/stderr. Applications writing to a file inside the container are not collected.
Build
The image builder's full output, chosen per deployment. The screen opens at the end of the build, which is where the reason for a failure is; a very long build shows the last 5,000 lines, and Download brings the whole build.
The output is recorded in both outcomes — success and failure. Someone investigating a slow build, or one that produced the wrong image, needs the log of a build that succeeded.
This is the tab that answers "why did it break" when a deployment fails at Building. See How the image is built.
Platform
What Zero recorded while deploying: the steps, the transitions, and the reasons. It is the operation's narrative, in product language.
The same content appears under the Events tab of a deployment's page, restricted there to that deployment.
Secrets
Credentials appearing in the output are masked before being stored — including those arriving in external tools' messages. The surrounding context is preserved: a fully masked line solves the leak and creates a useless log.
Common errors
| Symptom | Likely cause | What to do |
|---|---|---|
| The Runtime tab shows nothing | There is no run yet, or the application does not write to stdout | Check the deployment state and how your application logs |
| New lines do not appear | Following is paused, or you scrolled up in the list | Click Resume live, or New lines ↓ |
| "A service reached the limit of 50000 lines in a day" | The application wrote more than 50,000 lines that day | Look for the loop repeating the same line; recording resumes the next day |
| I cannot find a line from more than a week ago | The log is kept for 7 days | To keep it longer, download the log periodically |
| The build log is empty | The deployment failed before the build | Check Deployment attempts in the project |
| I cannot find the error I saw in the browser | The error is the application's, not the platform's | The Runtime tab, not Platform |
Next steps
Was this page helpful?
Report a problem on this pageDo not send passwords, keys, tokens, or customer data.