API - Tail the Solr and HTTP Access Logs of an Index

Logs & Analytics
Logs & Analytics API

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

ParameterStatusDescription
emailRequiredYour Opensolr registration email address
api_keyRequiredYour Opensolr API key (master key, or a scoped key that allows this endpoint)
core_nameRequiredThe 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

KeyTypeDescription
statusbooltrue when the log was read
msgstringRaw 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 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";
}

Py 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