curl --request GET \
--url http://localhost:9371/logsimport requests
url = "http://localhost:9371/logs"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('http://localhost:9371/logs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "9371",
CURLOPT_URL => "http://localhost:9371/logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://localhost:9371/logs"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://localhost:9371/logs")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:9371/logs")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"items": [
{
"timestamp": 123,
"seq": 123,
"level": "trace",
"type": "app",
"message": "<string>",
"pid": 123,
"event": "<string>",
"requestId": "<string>",
"processId": 123,
"adapterId": "<string>",
"serviceId": "<string>",
"moduleId": "<string>",
"moduleType": "adapter",
"environmentId": "<string>",
"executionId": 123,
"dispatchId": "<string>",
"toolId": "<string>",
"phase": "<string>",
"method": "<string>",
"path": "<string>",
"statusCode": 123,
"durationMs": 123,
"req": {},
"res": {},
"error": null,
"suppressedCount": 123,
"metadata": {}
}
],
"nextCursor": "<string>",
"hasMore": true
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "rate_limit_exceeded",
"message": "<string>",
"retryAfter": 1
}{
"error": "<string>",
"code": "<string>"
}List log entries
Returns log entries from the in-memory ring buffer and, when the page is short, the rotated JSONL log files on disk. Query filters apply to both sources; request payloads are scrubbed of secrets before persistence.
curl --request GET \
--url http://localhost:9371/logsimport requests
url = "http://localhost:9371/logs"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('http://localhost:9371/logs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "9371",
CURLOPT_URL => "http://localhost:9371/logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://localhost:9371/logs"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://localhost:9371/logs")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:9371/logs")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"items": [
{
"timestamp": 123,
"seq": 123,
"level": "trace",
"type": "app",
"message": "<string>",
"pid": 123,
"event": "<string>",
"requestId": "<string>",
"processId": 123,
"adapterId": "<string>",
"serviceId": "<string>",
"moduleId": "<string>",
"moduleType": "adapter",
"environmentId": "<string>",
"executionId": 123,
"dispatchId": "<string>",
"toolId": "<string>",
"phase": "<string>",
"method": "<string>",
"path": "<string>",
"statusCode": 123,
"durationMs": 123,
"req": {},
"res": {},
"error": null,
"suppressedCount": 123,
"metadata": {}
}
],
"nextCursor": "<string>",
"hasMore": true
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "rate_limit_exceeded",
"message": "<string>",
"retryAfter": 1
}{
"error": "<string>",
"code": "<string>"
}Query Parameters
x >= 0x >= 0trace, debug, info, warn, error, fatal trace, debug, info, warn, error, fatal app, request, module adapter, environment Substring filter against the entry message.
500200200x > 0200200200200x > 02002002000 < x <= 599x >= 0x >= 0Sort order; defaults to timestamp:desc.
timestamp:asc, timestamp:desc, duration:asc, duration:desc Opaque pagination token returned as nextCursor by the previous response. Pass it back unchanged to fetch the next page; null/omitted fetches the first page. Cursors encode position, not filters, so change filters only between pages when starting over.
2048Maximum number of items per page. Clamped to a maximum of 100; defaults to 20.
1 <= x <= 100Response
Matching log entries.
Paginated collection envelope.
Log entries that match the supplied filters, ordered by the requested sort.
Show child attributes
Show child attributes
Opaque cursor for the next page; null when there are no more items. Echo it back as the cursor query parameter to continue paginating.
Whether additional pages exist. When true, nextCursor is a valid cursor; when false, pagination has reached the end.
Was this page helpful?