Integrate

Integrate evlog

Wire evlog into your stack — pick a framework integration to capture requests automatically, then pick adapters to ship events to Axiom, Sentry, PostHog, OTLP, and more. Frameworks decide where the logger lives; adapters decide where events go.

Once you understand the logging modes, there are two questions left to answer before evlog is wired into your stack:

  1. Where does the logger live? → Pick a framework integration. Each integration creates the logger on every request, attaches it to the context, and emits the wide event when the response ends. You don't manage the lifecycle.
  2. Where do events go? → Pick one or more adapters. Adapters ship the wide event to an external observability platform — Axiom, Datadog, Sentry, PostHog, OTLP-compatible systems, file system, NuxtHub.

The two are independent. A Nuxt app can drain to Axiom, an Express app can drain to OTLP + Sentry simultaneously, a SvelteKit app can drain to a local file in dev and to Datadog in production.

Frameworks (16)

Nuxt, Next.js, SvelteKit, Nitro, TanStack Start, NestJS, Express, Hono, Fastify, Elysia, React Router, Cloudflare Workers, AWS Lambda, Astro, Standalone, Custom integration.

Adapters (9)

Cloud destinations (Axiom, OTLP, HyperDX, PostHog, Sentry, Better Stack, Datadog) and self-hosted (file system, NuxtHub).

Don't see your framework?

Check Custom Framework Integration. The evlog/toolkit package exposes the same building blocks every built-in integration uses — most HTTP frameworks need ~30 lines of glue.

Don't see your destination?

Check Custom Drains. defineHttpDrain from evlog/toolkit ships any backend with a single function and gives you batching, retries, timeouts, and identity headers for free.