I've needed similar logged information recently and I looked at the code and had a few questions:
Why does SolrCore.setResponseHeaderValues(...) set the QTime (and other response header options) instead of having it as a function of RequestHandlerBase? If things were tracked in the RequestHandlers you could add timing information there: avg query time, etc. I know some people have argued that you can do that with logs but being able to pull that info live via JMX/stats.jsp would make monitoring much cleaner in environments with multiple machines on different networks. If things are tracked in the handlers then people can add more statistics easily to both query response headers and overall via custom handlers. I'm happy to make the changes and supply a patch to move the logic as well as adding a few simple metrics unless enough people on this thread really feel that it's always better to do it with log files and postmortem math. - will