Understand every request your app serves
Logixlysia turns Elysia traffic into structured, colorful log lines — then filters the noise, samples the volume, and ships the rest to the platform you already use.
bun add logixlysiaRequest context
See every request, end to end
Method, path, status, duration, and client IP land on one readable line — captured automatically for every request, with no wrappers and no middleware chains.
Explore request context| Time | Method | Path | Status | Duration | IP |
|---|---|---|---|---|---|
| 10:24:31.804 | GET | / | 200 | 3ms | 10.0.0.42 |
| 10:24:32.108 | POST | /auth/login | 201 | 38ms | 10.0.0.17 |
| 10:24:33.412 | GET | /reports | 200 | 613ms | 172.16.4.9 |
| 10:24:34.001 | GET | /export | 200 | 1.2s | 10.0.0.42 |
| 10:24:35.219 | GET | /crash | 500 | 2ms | 203.0.113.5 |
Filtering
Keep the noise out
Filter by level, HTTP method, or status code. Health checks and favicons fade away — warnings and errors stay loud.
Explore filtering| Method | Path | Status | Duration |
|---|---|---|---|
| GET | /health | 200 | 1ms |
| GET | / | 200 | 3ms |
| GET | /favicon.ico | 404 | 1ms |
| POST | /auth/login | 201 | 38ms |
| GET | /crash | 500 | 2ms |
SamplingNew
Keep the bill flat
Head sampling keeps a percentage of high-volume levels. Tail sampling replays the dropped lines the moment a request errors or runs slow — routine traffic costs almost nothing, interesting requests stay complete.
Explore sampling| Method | Path | Status | Duration | Sampling |
|---|---|---|---|---|
| GET | /api/items | 200 | 4ms | replayed |
| GET | /api/items/7 | 200 | 3ms | replayed |
| GET | /api/cart | 200 | 6ms | replayed |
| POST | /checkout | 500 | 87ms | tail match |
EnrichersNew
Add context once, see it everywhere
Enrichers contribute fields to every request — trace ids from the traceparent header, geo from your platform's headers, parsed user agents. Set them up once and the fields reach the console, files, and every adapter.
Explore enrichers| Field | Value |
|---|---|
| trace_id | 4bf92f3577b34da6a3ce929d0e0e4736 |
| geo.city | Berlin |
| geo.country | DE |
| ua.browser | Chrome |
| ua.device | desktop |
File rotation
Outlive the terminal
Write logs to disk with size- and time-based rotation built in — yesterday's file compresses and rotates away on its own.
Explore file loggingAdapters9 platforms
Ship logs where you already look
Every adapter is a regular transport — batched, retried, and non-blocking — so a slow sink never delays a response. Mix them with console and file logging, or run them exclusively.
Explore adaptersFrequently asked questions
What is Logixlysia?
A logging plugin for Elysia.js. One .use(logixlysia()) gives every request a structured, colorful log line with method, path, status, and duration.
Does it need configuration?
No — the defaults are production-ready. Custom formats, filtering, file output, and the startup banner are all opt-in options on the same plugin.
Can I filter logs?
Yes. Filter by log level, HTTP method, or status code so health checks and favicons stay out of your terminal while warnings and errors stay loud.
Will it flood my log bill?
No. Head sampling keeps a percentage of high-volume levels, and tail sampling replays the dropped lines when a request errors or runs slow — the bill stays flat while interesting requests stay complete.
Can it write to files?
Yes. File logging ships with size- and time-based rotation built in, so old logs rotate and compress without extra tooling.
Can it send logs to my observability platform?
Yes — nine built-in adapters cover Axiom, Datadog, Sentry, PostHog, Better Stack, HyperDX, Grafana Loki, ClickHouse, and any OpenTelemetry backend over OTLP. Each one batches, retries, and never blocks a response.
Does it fit my stack?
Pino under the hood, OpenTelemetry ready, and WebSocket aware. It runs anywhere Elysia runs, with Bun as the first-class runtime.