Logs
Logs
Get logs for an app. By default, convox logs streams logs continuously. Use --no-follow to print current logs and exit.
Usage
convox logs
Examples
$ convox logs
2026-03-18T12:47:41Z service/web/77f0e67e-4886-4aa8-be56-1d19a3aab53b ns=template id=2bdd60aaf431 route=root at=end state=success elapsed=0.065
2026-03-18T12:47:41Z service/web/77f0e67e-4886-4aa8-be56-1d19a3aab53b ns=template id=2bdd60aaf431 route=root at=start method="GET" path="/" elapsed=0.029
2026-03-18T12:47:43Z service/web/a81ba08c-6dbe-48a4-88e6-da5f940156ae ns=template id=57c9464c88f6 route=root at=end state=success elapsed=0.070
2026-03-18T12:47:43Z service/web/77f0e67e-4886-4aa8-be56-1d19a3aab53b ns=template id=f5b0fcdd6f63 route=root at=start method="GET" path="/" elapsed=0.038
....
$ convox logs --filter 2bdd60aaf431 --since 24h
2026-03-18T12:47:41Z service/web/77f0e67e-4886-4aa8-be56-1d19a3aab53b ns=template id=2bdd60aaf431 route=root at=end state=success elapsed=0.065
2026-03-18T12:47:41Z service/web/77f0e67e-4886-4aa8-be56-1d19a3aab53b ns=template id=2bdd60aaf431 route=root at=start method="GET" path="/" elapsed=0.029
Flags
| Flag | Short | Description |
|---|---|---|
--filter |
Filter for a specific string within the logs | |
--no-follow |
Print logs and exit rather than streaming | |
--since |
Time frame for log query (e.g., 24h, 2m) |
|
--service |
-s |
Filter to a specific service |
--tail |
Number of lines to tail (service-specific logging only) | |
--allow-previous |
Include logs from previous container instances | |
--max-log-requests |
Maximum number of concurrent log follow streams (default 20) |
Tailing High-Concurrency Services
convox logs --service <name> streams logs from every pod that matches the selector. The underlying kubectl plumbing caps concurrency at 20 follow streams by default. When a service runs with more than 20 pods, the command fails with:
ERROR: you are attempting to follow 50 log streams, but maximum allowed concurrency is 20, use --max-log-requests to increase the limit
Pass --max-log-requests N to raise the concurrency cap. The flag is also wired into convox rack logs for rack-level system log streams.
$ convox logs --service pii-worker --since 5m --max-log-requests 50
Set the value to at least the pod count of the target service. Log streams are persistent HTTP connections, so very large values put sustained load on the API server — prefer filtering by --service and a modest concurrency over tailing the full app stream without the flag.
See Also
- Logging for log configuration and forwarding
- deploy-debug for diagnosing pods that never reach a ready state