Application logs
Application logs let you ship your app's Log:: output to Quiet Guard and read it next to the exceptions it explains. Logs live on each project's Logs tab in the /app panel.
Paid feature. Application logs are gated by the logs plan feature. On the Free plan log ingestion is rejected; the Indie and Studio plans include it. See Billing and plans.
Batch ingestion
Logs are sent in batches, not one request per line, to keep overhead low. Your client buffers log entries and flushes them to /api/v1/logs, typically on request termination and after queue jobs finish.
Each batch is an array of log entries:
A batch must contain between 1 and 500 entries. Only message is required per entry; level, context, channel, environment, release and logged_at are optional. The full contract is in the Ingestion API reference.
If your plan does not include logs, the endpoint responds 403 Forbidden:
How it counts toward your quota
Logs share the same monthly event quota as exceptions, each stored log entry counts as one event. This matters for two reasons:
- Soft quota. When a batch would push you past your plan's quota (plus a 10% grace margin), Quiet Guard stores only what fits and silently drops the surplus. There is no error and no surprise charge, the response simply reports how many entries were stored:
``json { "message": "accepted", "stored": 137 } ``
So a 200-entry batch with only 137 remaining in your allowance stores 137 and drops 63.
- Retention. Stored logs are pruned on your plan's retention window (7 / 30 / 90 days for Free / Indie / Studio) by the daily cleanup job.
See Billing and plans for quota, grace and retention details.
Encryption at rest
If your team has encrypted storage active, each log entry's message and context are sealed to your team's public key at ingestion, and the plaintext columns are nulled. Metadata (level, channel, environment, release, timestamp) stays in clear so the list and filters keep working. Locked logs show a placeholder until you unlock the session with your passphrase.
Reading the logs page
The project's Logs tab is built for scanning:
- A 7-day severity timeline sits above the table: errors, warnings and info stacked per day, so spikes are visible before you scroll.
- Filters are always visible above the table: a one-click severity group (errors / warnings / info), a level multi-select, environment and channel.
- The table refreshes automatically every 30 seconds, and a note under the header reminds you how long logs are kept on your plan.
- On a log entry's page, nested context renders as raw pretty-printed JSON in addition to the key-value grid.
You are reading the Quiet Guard v1.0 documentation.