Logs¶
Every request handled by the webserver is logged for you, so you can debug issues and see who accessed your site.
Access logs¶
You'll find your webserver's access log at ~/logs/caddy, which is actually a symlink to /var/log/caddy-userlogs/$USER.
[isabell@moondust ~]$ tail -f ~/logs/caddy/access.log
Always on
There is currently no way to disable this log.
Each line is a JSON object. The most relevant fields are:
{
"ts": "2026-07-11T11:02:18.428+0200",
"request": {
"client_ip": "192.0.2.100",
"proto": "HTTP/2.0",
"method": "GET",
"host": "isabell.uber.space",
"uri": "/robots.txt"
},
"status": 200,
"size": 512,
"duration": 0.002604887
}
You can use jq to filter and format the log, for example to only show the timestamp, method, path and status code:
[isabell@moondust ~]$ tail -f ~/logs/caddy/access.log | jq -r '[.ts, .request.method, .request.uri, .status] | @tsv'
Coming from Apache/nginx access logs
Caddy logs in structured JSON instead of the classic combined log format. This is more verbose but much easier to filter and parse reliably.