Skip to content

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.