─ info: GET /foo/endpoint
├─ info: user <user ID> valid auth
├─ info: request to service B
│ ├─ debug: opening new connection
│ ├─ debug: success, result = ...
│ └─ info: request took 1 seconds
├─ info: request to service B
│ ├─ debug: opening new connection
│ ├─ debug: success, result = ...
│ └─ info: request took 1 seconds
├─ info: preparing result took 1 seconds
└─ info: http request took 3 seconds
with the ability to hide sections, perhaps grep for only certain messages (particularly if you keep the formatting and the message separate, this should be doable, I think), attach metadata to messages…As it is, we have a fairly standard shove everything into syslog, and then pipe to a downstream logging system and a local file. But the downstream system is not very good at search (this is probably mostly our fault) and requires the message to be in JSON, so the stuff in the log file is _also_ JSON, b/c that's what syslog got. There are definitely better ways with our existing tools, but it sure makes one dream up what the perfect logging solution could look like.