Documentation
The Logs page is where a tenant reviews log entries, sees how long they are kept, and records the external systems it intends to forward logs to. It has three tabs: System Logs, Log Settings, and Log Forwarding.
Two things to know before you rely on it:
Open Settings → Logs in the sidebar (route /settings/logs). The path /logs redirects to the same page. The page title is "Logs Management" and each tab is selected in-page; the selected tab is not stored in the URL.
| Tab | What it does |
|---|---|
| System Logs | Browse and filter your tenant's log entries. |
| Log Settings | Shows your plan's log retention period (read-only). |
| Log Forwarding | Create, edit, and delete forwarding destinations. |
Every log entry and destination belongs to one tenant; you only ever see your own.
The System Logs tab lists log entries newest first, 25 per page, with server-side pagination.
| Filter | Behavior |
|---|---|
| Level | All levels, Debug, Info, Warning, or Error. |
| Source | Free-text field. The match is exact: the entry's source must equal what you type (leading and trailing spaces are trimmed). |
| From / To | Date pickers. Entries with a timestamp on or after From and on or before To are returned. A date is read as the start of that day, so to include all of the last day, pick the following day as To. |
| Refresh | Re-runs the current query on the current page. |
Changing any filter returns you to page 1. If nothing matches, the table shows "No log entries" and suggests adjusting your filters.
| Column | Content |
|---|---|
| Time | The entry timestamp in your browser's locale. |
| Level | A badge: DEBUG, INFO, WARN, or ERROR. |
| Source | The component or system that wrote the entry. |
| Message | The log message. |
Entries on this tab are tenant log entries written through the API (POST /api/logs with a level, a source, a message, and an optional details string). The portal does not provide a form for writing entries, and a log entry's details string is stored but not displayed in the table. The Veltrix server's own diagnostic output is a separate, operator-level log; see Server diagnostic log.
Deleting an entry (DELETE /api/logs/:id) is available through the API only. The API also exposes GET /api/logs/sources and GET /api/logs/levels (the distinct sources and levels in your tenant), and GET /api/logs/:id. Page size is capped at 100 per request on the API.
The Log Settings tab shows a single read-only card titled "Log retention": how long log entries are kept before they are purged, in days, based on your plan. There is nothing on this tab to configure. If your plan has no retention limit the card reads "Unlimited"; if the value cannot be loaded, an error is shown in place of the number.
Retention is a plan feature. A nightly job (02:30 server time by default) deletes tenant records older than your plan's window from four tables: log entries, audit events, configuration history, and deployment logs. The same window therefore governs both this page and the Audit Logs report.
| Plan | Retention window |
|---|---|
| Free | 7 days |
| Starter | 30 days |
| Professional | 90 days |
| Enterprise | 365 days |
Plan limits are described by feature here; see Plans and Trial for the plan overview.
Delivery is not implemented in this release. Creating a destination records the configuration only. Veltrix does not send logs to your Splunk, Elasticsearch, Datadog, Sumo Logic, or custom endpoint, and the server's connection-test endpoint answers "not implemented" instead of reporting a success it cannot substantiate. Do not rely on this tab as a SIEM feed or as compliance evidence that logs are being forwarded.
The Log Forwarding tab lists your saved destinations and lets you maintain them so the configuration is ready when delivery ships. The tab shows a "Configuration only - delivery not yet available" notice above the list, and the Settings card for Logs says the same.
https://; anything else is rejected before saving.| Column | Content |
|---|---|
| Name | The destination name. |
| Type | splunk, elasticsearch, datadog, sumologic, or custom. |
| Endpoint | The saved HTTPS URL. |
| Status | A badge: active, inactive, or error. |
Each row has Edit (same form as Add; changes name, type, and endpoint) and Delete (asks for confirmation). There is intentionally no "Test connection" button. The status value is stored with the destination, but because nothing is delivered it does not reflect the health of a real connection. The Delete confirmation states that logs are not being delivered to the destination today, so deleting only removes the saved configuration.
The API also accepts a status on update (PUT /api/log-forwarding/:id). Setting a status manually does not start delivery.
What is not available: field-level mapping, filters by level or source, authentication headers or tokens for the endpoint, batching or retry settings, and a delivery history. None of these exist in the code today.
| Capability | Permission |
|---|---|
| View System Logs | logEntry:read |
| Write or delete log entries (API) | logEntry:write |
| View forwarding destinations | logForwarding:read |
| Add, edit, delete destinations | logForwarding:write |
The built-in Administrator role holds every permission. Custom roles are managed under Access Control; see Access Control. Log Settings reads your plan's retention from the subscription and has no separate permission of its own. Log endpoints are tenant-scoped and use portal sign-in (JWT); they do not accept API keys.
This section is for operators who run their own Veltrix server (see Installation Options). It is separate from the tenant-facing tabs above.
LOG_LEVEL. When unset the default is warn in production, info in staging, and more verbose in development. LOG_FORMAT selects the output format (JSON in production and staging).LOG_FILE_PATH (default /var/log/veltrix/app.log), LOG_FILE_MAX_SIZE (default 100 MB) and LOG_FILE_MAX_FILES (default 30) bound its footprint.[REDACTED] at any nesting depth before a line is written.https://; plain http:// URLs are rejected.