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

FrameworkImportTypeLogger AccessStatus
Nuxtevlog/nuxtModuleuseLogger(event)Stable
Next.jsevlog/nextFactoryuseLogger()Stable
SvelteKitevlog/sveltekitHooksevent.locals.log / useLogger()Stable
Nitroevlog/nitroModuleuseLogger(event)Stable
TanStack Startevlog/nitro/v3ModuleuseRequest().context.logStable
NestJSevlog/nestjsModuleuseLogger()Stable
Expressevlog/expressMiddlewarereq.log / useLogger()Stable
Honoevlog/honoMiddlewarec.get('log')Stable
Fastifyevlog/fastifyPluginrequest.log / useLogger()Stable
Elysiaevlog/elysiaPluginlog (context) / useLogger()Stable
Cloudflare Workersevlog/workersFactorycreateWorkersLogger()Stable
StandaloneevlogManualcreateLogger() / createRequestLogger()Stable
AstroevlogManualcreateRequestLogger()Guide

Full-Stack Frameworks

Nuxt

Auto-imported useLogger, createError, and parseError. Zero config.

Next.js

createEvlog() factory with withEvlog() handler wrapper and client provider.

SvelteKit

Handle and handleError hooks with request-scoped logger on event.locals.log.

Nitro

Module for both Nitro v2 and v3 with plugin-based drain and enrichment hooks.

TanStack Start

Uses Nitro v3 module with async context for seamless logging in server functions.

NestJS

EvlogModule.forRoot() with global middleware, exception filter, and async config.

Server Frameworks

Express

Middleware with req.log and 4-argument error handler.

Hono

Middleware with typed c.get('log') via EvlogVariables.

Fastify

Plugin with request.log that shadows Fastify's built-in pino logger.

Elysia

Plugin with log in route context via Elysia's derive.

Cloudflare Workers

Factory for creating request-scoped loggers with Cloudflare-specific context.

Standalone

For scripts, CLI tools, queues, and any TypeScript process.
All frameworks support the same features: wide events, structured errors, drain adapters, enrichers, and sampling.