Logs
Read, filter and follow output from your services.
Everything your services write to standard output and standard error is collected and searchable. There is no agent to install and no logging library to configure — write to stdout and it is captured.
Read logs
guidal logs query --service apiFollow output as it arrives:
guidal logs query --service api --followNarrow to a time window or a string:
guidal logs query --service api --since 1h
guidal logs query --service api --search "timeout"Logs from a specific deploy
guidal logs deployment --service apiThis scopes output to one deployment, which is what you want when a release misbehaves and you need to separate the new version's output from the old.
In the dashboard
- In the navigation pane, choose Logs.
- Choose the service whose output you want.
- Use the search field to filter, and the time selector to change the window.
- Toggle Live to follow new output as it arrives.
Retention
| Plan | Log retention |
|---|---|
| Starter | 3 days |
| Pro | 7 days |
| Team | 30 days |
Logs older than your retention window are removed. If you need longer history — for audit or compliance — ship logs to an external system from your application as well.
Daily volume limits
Each plan has a daily log volume allowance and a per-second line rate. A service that exceeds the rate has its output sampled rather than being stopped, so an accidental debug-logging loop degrades log fidelity instead of taking the service down.
If logs look incomplete, check whether the service is being rate-limited before assuming something is being swallowed.
Log at the right level
Debug logging left on in production is the usual cause of hitting these limits. It also makes real errors harder to find. Set log level through an environment variable so you can raise verbosity temporarily without a code change.
Writing logs worth reading
Write structured lines. JSON with consistent keys is far easier to filter than prose, and remains greppable.
Include an identifier. A request id or job id carried through every line lets you reconstruct one operation out of interleaved output from several replicas.
Never log secrets. API keys, tokens, passwords and full payment details do not belong in output that many people can read. Redact before writing, not after.
Log to stdout, not to a file. Files written inside a container disappear when it restarts, and are not collected.
Related
- Metrics for resource usage over time
- Troubleshooting for interpreting failures