- List the log files of suvi and its tasks, rotated ones included, behind a new
  files icon next to json and txt on the global log and every task log page, each
  with a link to view it as plain text and one to download it.
- List all of these files with their size and date at `/logfiles.json`.
- Serve only files named after suvi or a task config file, so a log directory
  shared with other programs exposes nothing else.
- Compress responses while they stream instead of holding the whole body in
  memory, and leave byte range answers uncompressed.
- Keep webhook tokens out of the log, which every user login can read. The log
  names the position of the token in the task config file instead, i. e.
  `hook token #2`. Log files written before keep their tokens until they rotate out.
- Escape line breaks inside a log entry as `\n`, `\r` and the like, so that one
  entry is always one line of the log file and a webhook call or a login name can
  no longer write a forged entry.