Project logs
The Logs tab gives you read-only access to a project's runtime output without opening SSH. Use History to inspect saved lines, or Live to follow new output as it arrives.
The Logs tab requires the Read logs permission (log:read). It is granted to all built-in roles: Owner, Admin, Manager, Developer, and Viewer.
History and Live #
Use History for the lines already written to a source. Use Live when you want the view to remain open and append new output.
Both modes share the source picker, search, and timestamp preference. Choose Local to show timestamps in your browser timezone, or UTC when you need to compare events across servers and teams. The choice is saved to your account and applies in both modes.
In Live mode, Follow keeps the newest line in view. Scrolling away pauses automatic scrolling so you can read; select the new-lines indicator or Follow to return to the tail. Search filters entries without closing the stream, and fullscreen gives the viewer the available workspace.
If a reconnect cannot recover every buffered byte, the viewer marks the gap. Treat the entries on either side as separate portions of the stream.
Choose a source #
The source picker only offers sources that apply to the project:
- nginx access — every request nginx served, with status code, response time, user agent
- nginx error — nginx-level errors (502 / 504 / 503 responses, upstream connection failures, configuration issues)
- Application — for Laravel projects,
storage/logs/laravel.log; for Node.js projects, the running process output managed by DPM - Octane, Reverb, Horizon, and Nightwatch — their supervisor output when that Laravel plugin is installed for the project
Octane projects can expose separate blue and green process sources. Server-level background jobs are not project log sources and do not appear in this picker.
Static builds are served directly by nginx. They do not have an Application source; start with nginx access or nginx error instead.
For a Laravel application that writes to another file, configure it to write to storage/logs/laravel.log for it to appear under Application. Node application streaming requires DPM 1.13.0 or later.
The access log is off by default #
A project’s nginx configuration ships with access_log off; and the log path on a commented-out line below it, so a busy site does not fill the server’s disk with a line per request. Pick nginx access on a project that has never had it enabled and you are told it is switched off, rather than being shown an empty view that looks like no traffic.
To turn it on, uncomment the access_log line in Edit Nginx Config on the Nginx Configuration tab. From then on, requests are recorded and the source fills up.
When access logging is disabled, Live reports that state and stops retrying. An empty view can also mean that the log exists but has no lines, or that its file could not be read.
Laravel records and exceptions #
The viewer recognizes both conventional Laravel/Monolog text records and JSON-formatted Laravel/Monolog records. It shows a compact timestamp, level, and message row for each record, while preserving the underlying detail.
Multiline Laravel exceptions are grouped into one expandable event instead of appearing as separate rows. Expand an event to inspect its stack trace; collapsed details still participate in search. For JSON records, context and extra fields are available in the expanded detail rather than crowding the main row.
Log levels are coloured by severity so warnings and failures remain distinguishable while scanning. ANSI escape codes from application output, including chalk output and Laravel-coloured levels, are rendered as colours where available.
Live access and server identity #
Live mode opens a read-only connection; it does not provide a shell or accept input. It requires a trusted Ed25519 SSH host key for the project’s server.
For a server that does not yet have a saved key, opening Live performs one authenticated SSH handshake to enroll its Ed25519 key. Once enrolled, the key is pinned for subsequent Live connections. If the server identity cannot be verified, History remains available.
Permission #
The Logs tab is available to anyone with the Read logs permission. The five built-in roles (Owner / Admin / Manager / Developer / Viewer) all grant this by default — so even a read-only Viewer can use the tab to investigate without needing higher permissions. See Members for the role breakdown.
Where logs live on the server #
Useful to know if you ever need to grep across log files via SSH:
- nginx access —
/var/log/nginx/PROJECT_ID-access.log - nginx error —
/var/log/nginx/PROJECT_ID-error.log - Laravel application —
/home/depfloy/PROJECT_ID/shared/storage/logs/laravel.log(persists across deployments)
The Console reads from these files directly, so what you see in the tab matches what you’d see with tail -f.