There is actually several ways to answer this depending on the level of precision your situation requires. And, of course, there are trade-offs.
One issue to keep in mind is what you mean by "parameters". Do you want to include all the explicit defaults and overrides that the Request Handler will add itself? Or just what the calling URL has. Logging at different steps will give you different answers here. Also, some parameters can be sent in the request body, not just in the URL. Now in terms of options: One answer is that logging should be happening in the middleware that talks to Solr. That's where you transform UI requests into what will go to Solr and you already have the code to log it anyway you want. But that's harder if you have multiple clients all talking to Solr or if you have trust in your smart-firewall and expose Solr directly to the web. The next option is to enable standard HTTP access log on the bundled Jetty level. However, Jetty is an implementation detail, so you should keep that in mind as you migrate. Next, I am pretty sure there is a debug setting that logs all the query elements. You can just enable TRACE on the highest Solr level on the test system and then pick the specific message you like most. Then, enable that in log4j.config file for your production. That would be low level reporting, possibly in a format you need to post-process. Depending on where that debug is coming from, this may or may not include the defaults/overrides. You could enable echoParams=all or echoParams=explicit, which will then send the request parameters with the reply in the JSON format. You'd need to extract it from that somehow though. Again, it would be easy if you had a single contact point in middleware as well. Finally, you could do a custom search component and - since it has access to the request parameter map - log it any way you want. Or a custom UpdateRequestProcessor, I think they can access that info as well. Or, if you can't touch anything, but your network/cpu is not overloaded, you could run Wireshark and capture the HTTP requests right off the network traffic. That's bringing gun with a silencer to a knife fight, but perhaps you would enjoy the bragging rights. Or - more realistically - perhaps you want to capture POST body content, response timing, encoding abnormalities or other debug-level issues. Hope this helps, Alex. ---- http://www.solr-start.com/ - Resources for Solr users, new and experienced On 17 February 2017 at 07:17, Prateek Jain J <prateek.j.j...@ericsson.com> wrote: > > > Hi All, > > > > How can I log queries received by solr from applications. By query, I mean > full URL with parameters executed by application. For example, > > > > I expect to see something like this > > > > http://solr:8389/my_collection?q=*:*&fq=eventRecordTimestamp:[NOW- > 60000MILLISECONDS TO NOW] > > > > I tried to enable debug logs for org.apache.solr package (java) and enable > all logging levels from solr admin UI (image attached). I am hoping there > should be a simple way for achieving this and something silly is what I am > missing here. > > > > > > > > Regards, > > Prateek Jain > > Team: Totoro > > Mobile: +353 894 391716 > > >