@page @model Status.Pages.Admin.IngestModel @{ ViewData["Title"] = "Log Ingestion"; ViewData["Page"] = "admin-ingest"; var host = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}"; }
Log Ingestion API

Status accepts logs from any application via HTTP POST. Compatible with custom HTTP sinks from Serilog, NLog, log4net, and any HTTP client.

Single Log Entry
POST @host/api/logs/ingest Content-Type: application/json { "source": "my-app", "level": "error", "message": "Something went wrong", "exception": "System.Exception: ...", "properties": "{\"userId\": 42}", "host": "prod-server-01", "traceId": "abc123" }
Batch Ingestion
POST @host/api/logs/batch Content-Type: application/json [ {"source":"app","level":"info","message":"Started"}, {"source":"app","level":"warn","message":"Slow query","properties":"{\"ms\":2400}"} ]
EonaCat.LogStack HTTP Flow (.NET)
// Install: EonaCat.LogStack var logger = new LogBuilder().WriteToHttp("@host/api/logs/eonacat").Build();
Serilog HTTP Sink (.NET)
// Install: Serilog.Sinks.Http Log.Logger = new LoggerConfiguration() .WriteTo.Http( requestUri: "@host/api/logs/serilog", queueLimitBytes: null) .CreateLogger();
Python (requests)
import requests requests.post("@host/api/logs/ingest", json={ "source": "my-python-app", "level": "info", "message": "App started", "host": socket.gethostname() })
Log Levels
DEBUGVerbose diagnostic info
INFONormal operation events
WARNINGWarning requires attention
ERRORErrors requiring attention
CRITICALSystem critical failure / crash