Tail the Solr and HTTP Access Logs of an Index
Two sibling endpoints that return the tail of the raw logs for one index: tail_access_log gives the Solr log lines (warnings, exceptions, slow queries as Solr logged them) and tail_apache_log gives the HTTP access log of your index endpoint (client IPs, requests, status codes). Both are read-only and instant.
Endpoint
GET https://opensolr.com/solr_manager/api/tail_access_log GET https://opensolr.com/solr_manager/api/tail_apache_log
Parameters
| Parameter | Status | Description |
|---|---|---|
email | Required | Your Opensolr registration email address |
api_key | Required | Your Opensolr API key (master key, or a scoped key that allows this endpoint) |
core_name | Required | The index whose logs to read |
How It Works
Each call is relayed to the server hosting the index, which returns the last lines of the requested log filtered to that index, as plain text in msg. tail_access_log is Solr’s own log (the same source as get_error_log, but unparsed and including non-error entries); tail_apache_log is the web-server access log in front of Solr — empty when nobody has queried the endpoint recently. For aggregated, queryable traffic data use the Traffic Monitoring API.
Response
| Key | Type | Description |
|---|---|---|
status | bool | true when the log was read |
msg | string | Raw log tail, newline-separated (may be just a newline when the log is empty) |
Code Examples
cURL
curl -s "https://opensolr.com/solr_manager/api/tail_access_log?email=YOUR_EMAIL&api_key=YOUR_API_KEY&core_name=my_index" curl -s "https://opensolr.com/solr_manager/api/tail_apache_log?email=YOUR_EMAIL&api_key=YOUR_API_KEY&core_name=my_index"
PHP
$q = http_build_query(['email' => 'YOUR_EMAIL', 'api_key' => 'YOUR_API_KEY', 'core_name' => 'my_index']); foreach (['tail_access_log', 'tail_apache_log'] as $ep) { $r = json_decode(file_get_contents("https://opensolr.com/solr_manager/api/{$ep}?{$q}"), true); echo "== {$ep}\n", $r['msg'], "\n"; }
Python
import requests auth = {"email": "YOUR_EMAIL", "api_key": "YOUR_API_KEY", "core_name": "my_index"} for ep in ("tail_access_log", "tail_apache_log"): print("==", ep) print(requests.get(f"https://opensolr.com/solr_manager/api/{ep}", params=auth, timeout=30).json()["msg"])
Example Response
{ "status": true, "msg": "2026-08-28 19:58:57 [my_index] WARN CoreContainer:2152 - Cannot unload non-existent core 'my_index'\n2026-08-28 19:59:02 [my_index] INFO SolrCore - [my_index] Registered new searcher\n" }
Use Cases
- Check what Solr logged right after a failed config upload or reload
- See the client IPs and requests reaching your index endpoint
- Attach raw log context to a support ticket
Related Documentation
Need help with the Opensolr API? We are here to help.
Contact Support