# evlog ## Documentation Sets - [evlog](https://www.evlog.dev/llms-full.txt) ## Docs - [evlog - Stop grepping through chaos](https://www.evlog.dev/raw/landing.md): Wide events and structured errors for TypeScript. One log per request, full context, errors that explain why and how to fix. - [Introduction](https://www.evlog.dev/raw/getting-started/introduction.md): A TypeScript logging library focused on wide events and structured error handling. Replace scattered logs with one comprehensive event per request. - [Install evlog](https://www.evlog.dev/raw/getting-started/installation.md): Install evlog in your TypeScript project. - [Quick Start](https://www.evlog.dev/raw/getting-started/quick-start.md): Get up and running with evlog in minutes. Learn useLogger, createError, parseError, and the log API for wide events and structured errors. - [Agent Skills](https://www.evlog.dev/raw/getting-started/agent-skills.md): AI-assisted code review and evlog adoption using Agent Skills. Let AI review your logging patterns and guide migration to wide events. - [Framework Integrations](https://www.evlog.dev/raw/frameworks/overview.md): evlog supports every major TypeScript framework. Choose your stack and get started in minutes. - [Nuxt](https://www.evlog.dev/raw/frameworks/nuxt.md): Using evlog with Nuxt — automatic wide events, structured errors, drain adapters, enrichers, tail sampling, and client transport in Nuxt applications. - [Next.js](https://www.evlog.dev/raw/frameworks/nextjs.md): Using evlog with Next.js — wide events, structured errors, drain pipeline, tail sampling, route-based services, error handling, and client-side logging. - [SvelteKit](https://www.evlog.dev/raw/frameworks/sveltekit.md): Using evlog with SvelteKit — automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in SvelteKit applications. - [Nitro](https://www.evlog.dev/raw/frameworks/nitro.md): Using evlog with Nitro — automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in Nitro v2 and v3 applications. - [TanStack Start](https://www.evlog.dev/raw/frameworks/tanstack-start.md): Using evlog with TanStack Start — automatic wide events, structured errors, and logging in API routes and server functions. - [NestJS](https://www.evlog.dev/raw/frameworks/nestjs.md): Using evlog with NestJS — automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in NestJS applications. - [Express](https://www.evlog.dev/raw/frameworks/express.md): Using evlog with Express — automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in Express applications. - [Hono](https://www.evlog.dev/raw/frameworks/hono.md): Using evlog with Hono — automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in Hono applications. - [Fastify](https://www.evlog.dev/raw/frameworks/fastify.md): Using evlog with Fastify — automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in Fastify applications. - [Elysia](https://www.evlog.dev/raw/frameworks/elysia.md): Using evlog with Elysia — automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in Elysia applications. - [Cloudflare Workers](https://www.evlog.dev/raw/frameworks/cloudflare-workers.md): Using evlog with Cloudflare Workers — wide events, structured errors, and logging in Workers and Durable Objects. - [Standalone TypeScript](https://www.evlog.dev/raw/frameworks/standalone.md): Using evlog in standalone TypeScript — scripts, CLI tools, queues, cron jobs, and any TypeScript process. - [Astro](https://www.evlog.dev/raw/frameworks/astro.md): Using evlog with Astro — wide events and structured errors in Astro server middleware. - [Wide Events](https://www.evlog.dev/raw/core-concepts/wide-events.md): Learn how to design effective wide events that capture everything you need in a single log. One comprehensive event per request with full context. - [Structured Errors](https://www.evlog.dev/raw/core-concepts/structured-errors.md): Create errors that explain why they occurred and how to fix them. Add actionable context with why, fix, and link fields for humans and AI agents. - [Best Practices](https://www.evlog.dev/raw/core-concepts/best-practices.md): Security guidelines, data sanitization, and production tips for evlog. Learn what not to log and how to protect sensitive data. - [Typed Fields](https://www.evlog.dev/raw/core-concepts/typed-fields.md): Add compile-time type safety to your wide events with TypeScript module augmentation. Prevent typos and ensure consistent field names across your codebase. - [Sampling](https://www.evlog.dev/raw/core-concepts/sampling.md): Control log volume with two-tier sampling. Head sampling drops noise by level, tail sampling rescues critical events based on outcome. Never miss errors, slow requests, or critical paths. - [Client Logging](https://www.evlog.dev/raw/core-concepts/client-logging.md): Capture browser events with structured logging. Same API as the server, with automatic console styling, user identity context, and optional server transport. - [Adapters Overview](https://www.evlog.dev/raw/adapters/overview.md): Send your logs to external services with evlog adapters. Built-in support for popular observability platforms and custom destinations. - [Axiom Adapter](https://www.evlog.dev/raw/adapters/axiom.md): Send wide events to Axiom for powerful querying, dashboards, and alerting. Zero-config setup with environment variables and automatic batching. - [OTLP Adapter](https://www.evlog.dev/raw/adapters/otlp.md): Send logs via OpenTelemetry Protocol (OTLP) to Grafana, Datadog, Honeycomb, and any compatible backend. Supports gRPC and HTTP transports. - [PostHog Adapter](https://www.evlog.dev/raw/adapters/posthog.md): Send wide events to PostHog Logs via OTLP for structured log querying, debugging, and observability in your PostHog dashboard. - [Sentry Adapter](https://www.evlog.dev/raw/adapters/sentry.md): Send structured logs to Sentry Logs for high-cardinality querying and debugging. Zero-config setup with environment variables. - [Better Stack Adapter](https://www.evlog.dev/raw/adapters/better-stack.md): Send wide events to Better Stack (formerly Logtail) for log management, alerting, and dashboards. Zero-config setup with environment variables. - [Custom Adapters](https://www.evlog.dev/raw/adapters/custom.md): Build your own adapter to send logs to any destination. Factory patterns, batching, filtering, and error handling best practices. - [Drain Pipeline](https://www.evlog.dev/raw/adapters/pipeline.md): Batch events, retry on failure, and protect against buffer overflow with the shared drain pipeline. Supports fan-out to multiple adapters. - [Browser Drain](https://www.evlog.dev/raw/adapters/browser.md): Framework-agnostic browser log transport for sending client-side logs to your server via fetch or sendBeacon. Works with any frontend stack. - [Enrichers Overview](https://www.evlog.dev/raw/enrichers/overview.md): Enrich your wide events with derived context like user agent, geo data, request size, and trace context. Built-in enrichers and custom enricher support. - [Built-in Enrichers](https://www.evlog.dev/raw/enrichers/built-in.md): Reference for all built-in evlog enrichers. Parse user agents, extract geo data, measure request sizes, and capture trace context automatically. - [Custom Enrichers](https://www.evlog.dev/raw/enrichers/custom.md): Write custom enrichers to add derived context to your wide events. Add deployment metadata, tenant IDs, feature flags, or any computed data. - [NuxtHub Storage](https://www.evlog.dev/raw/nuxthub/overview.md): Self-hosted log retention for evlog using NuxtHub database storage. Store, query, and automatically clean up your structured logs with zero external dependencies. - [Retention & Cleanup](https://www.evlog.dev/raw/nuxthub/retention.md): Configure how long logs are kept in NuxtHub and how they are automatically cleaned up with scheduled tasks, cron jobs, and retention policies.