Integrations
Most Blyp integrations are server-side adapters, but Expo is a client/mobile transport. Together they cover:
- create or expose a
BlypLogger - attach logging to the framework or runtime in a native way
- emit HTTP lifecycle logs when the platform has a request lifecycle
- optionally ingest or sync client logs to your backend
Integration map
| Framework | Import path | Main API | Where the logger is exposed |
|---|---|---|---|
| Elysia | blyp-js/elysia | createLogger() | ctx.log |
| Expo | blyp-js/expo | createExpoLogger() | returned logger instance in the Expo app |
| Hono | blyp-js/hono | createLogger() | context.get("blypLog") |
| Express | blyp-js/express | createLogger() | req.blypLog |
| Fastify | blyp-js/fastify | createLogger() | request.blypLog |
| NestJS | blyp-js/nestjs | createLogger() + BlypModule.forRoot() | req.blypLog and root logger |
| Next.js App Router | blyp-js/nextjs | createLogger() | withLogger(..., { log }) |
| TanStack Start | blyp-js/tanstack-start | createLogger() | context.blypLog |
| SvelteKit | blyp-js/sveltekit | createLogger() | event.locals.blypLog |
| Cloudflare Workers | blyp-js/workers | initWorkersLogger() + createWorkersLogger() | request-scoped logger returned per request |
Shared server-adapter config shape
All server adapters accept the same core options:
{
level?: string;
pretty?: boolean;
logDir?: string;
file?: LogFileConfig;
autoLogging?: boolean | { ignore?: (ctx) => boolean };
customProps?: (ctx) => Record<string, unknown>;
logErrors?: boolean;
ignorePaths?: string[];
clientLogging?: boolean | {
path?: string;
validate?: (ctx, payload) => boolean | Promise<boolean>;
enrich?: (ctx, payload) => Record<string, unknown> | Promise<Record<string, unknown>>;
};
}Client ingestion behavior
- Default ingestion path:
/inngest - When client logging is enabled, Blyp automatically excludes the ingestion path from normal HTTP request logging
- Some adapters auto-register the endpoint for you; others return a handler you mount manually
- If you mount a handler on the wrong path, adapters like Next.js, SvelteKit, and TanStack Start return a
500mismatch response - Expo is different: it sends logs directly to an absolute backend URL and does not register a local ingestion handler
Pick a framework page below for the exact wiring: