fine-grained logging

Current logging configuration is just one bit: verbosity on/off. This makes it hard to monitor and debug large instances.

Let's collect ideas for improvement in this ticket:

  • per-request logging - ability to run single request with verbose logging is very handy for debugging. We have a prototype in /trace endpoint in HTTP module but this module does not log everything for a given request, and also it should be much easier to use than full HTTP.
  • per-type logging - it might be handy to enable/disable certain types of logging, e.g. control socket log might be too noisy if there is enough API traffic etc.
  • fine grained log levels exposed to the logging system - external log collectors need to know if given message is debug/info/error etc.
  • structured logging? log some rudimentary metadata in structured form - e.g. query name + type + rcode? This might be very handy for network operations centers etc.
Edited by Tomas Krizek