API REFERENCE
Logger
import { serverLogger, serverLoggerMinimal } from '@rasenganjs/server';
Two ready-made log callbacks for Futon's logger() middleware. Both have the signature (entry: LogEntry) => void — pass one directly as logger({ log }).
serverLogger()
function serverLogger(entry: LogEntry): void;
Colorful, human-readable output for local development — ANSI-colored HTTP method and status (green 2xx, cyan 3xx, yellow 4xx, red 5xx/errors), padded method column, timestamp, path, duration, and response size.
import { logger } from '@rasenganjs/futon'; import { serverLogger } from '@rasenganjs/server'; app.use(logger({ log: serverLogger }));
[2026-07-26T10:15:32.104Z] GET /api/users 200 4ms 128B
serverLoggerMinimal()
function serverLoggerMinimal(entry: LogEntry): void;
Single-line JSON output, suited for production log ingestion (CloudWatch, Datadog, ELK, etc.) — no ANSI codes.
app.use(logger({ log: serverLoggerMinimal }));
{ "time": "2026-07-26T10:15:32.104Z", "method": "GET", "path": "/api/users", "status": 200, "duration": 4, "size": 128 }
LogEntry
Neither serverLogger nor serverLoggerMinimal re-export LogEntry by name — it's Futon's type, documented on the Middleware reference:
interface LogEntry { method: string; pathname: string; search: string; status: number; // 0 if downstream threw duration: number; // milliseconds size: number | null; }
Write your own log callback against this shape if neither preset fits — both serverLogger and serverLoggerMinimal are just ordinary functions matching it.
