Frameworks
Framework Integrations
evlog supports every major TypeScript framework. Choose your stack and get started in minutes.
evlog provides native integrations for every major TypeScript framework. The same core API (log.set(), createError(), parseError()) works identically everywhere. Only the setup differs.
Overview
| Framework | Import | Type | Logger Access | Status |
|---|---|---|---|---|
| Nuxt | evlog/nuxt | Module | useLogger(event) | Stable |
| Next.js | evlog/next | Factory | useLogger() | Stable |
| SvelteKit | evlog/sveltekit | Hooks | event.locals.log / useLogger() | Stable |
| Nitro | evlog/nitro | Module | useLogger(event) | Stable |
| TanStack Start | evlog/nitro/v3 | Module | useRequest().context.log | Stable |
| NestJS | evlog/nestjs | Module | useLogger() | Stable |
| Express | evlog/express | Middleware | req.log / useLogger() | Stable |
| Hono | evlog/hono | Middleware | c.get('log') | Stable |
| Fastify | evlog/fastify | Plugin | request.log / useLogger() | Stable |
| Elysia | evlog/elysia | Plugin | log (context) / useLogger() | Stable |
| Cloudflare Workers | evlog/workers | Factory | createWorkersLogger() | Stable |
| Standalone | evlog | Manual | createLogger() / createRequestLogger() | Stable |
| Astro | evlog | Manual | createRequestLogger() | Guide |
| Custom | evlog/toolkit | Build your own | createMiddlewareLogger() | Beta |
Full-Stack Frameworks
Server Frameworks
All frameworks support the same features: wide events, structured errors, drain adapters, enrichers, and sampling.
Vite Plugin
For any Vite-based project, the evlog/vite plugin adds build-time optimizations:
- Auto-initialization — no
initLogger()call needed - Debug stripping —
log.debug()removed from production builds - Source location — inject
__source: 'file:line'into log calls
Works with SvelteKit, Hono (via vite-node), and any Vite-powered setup. Nuxt users get these features via the evlog/nuxt module options.