DEV.co
Open-Source Observability · HugoRCD

evlog

evlog is a TypeScript logging library that emits one structured event per request with full context, designed to replace scattered log lines with a single, queryable wide event. It integrates with Nuxt, Nitro, and standalone TypeScript projects, with built-in support for observability platforms like Axiom, PostHog, and Sentry.

Source: GitHub — github.com/HugoRCD/evlog
1.5k
GitHub stars
48
Forks
TypeScript
Primary language
MIT
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
RepositoryHugoRCD/evlog
OwnerHugoRCD
Primary languageTypeScript
LicenseMIT — OSI-approved
Stars1.5k
Forks48
Open issues15
Latest release[email protected] (2026-07-04)
Last updated2026-07-06
Sourcehttps://github.com/HugoRCD/evlog

What evlog is

evlog provides a context-aware request logger using h3/Nitro event handlers with automatic duration tracking and structured JSON output. It offers framework modules for Nuxt and Nitro (v2/v3), a standalone API via createRequestLogger, and sampling/filtering configuration for production use.

Quickstart

Get the evlog source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/HugoRCD/evlog.gitcd evlog# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Server-side API request observability

Emit one comprehensive wide event per API request with all request/response context, user data, and duration—ideal for debugging production issues without grepping through scattered logs.

Nuxt/Nitro application logging

Zero-config integration with Nuxt modules or Nitro framework; useLogger(event) auto-injects into any route handler and emits context-rich events at request end.

Structured error context for AI agents

Provide self-documenting errors with why/fix fields and all surrounding context in one JSON object, enabling AI-assisted debugging and code generation to reason about failures more effectively.

Implementation considerations

  • Requires Nuxt 3+, Nitro v2/v3, or manual initLogger + createRequestLogger calls; framework version compatibility should be verified before adoption.
  • Wide-event model assumes single operation per request; complex multi-step operations within one request may require nested log.set() calls—design clarity needed for large teams.
  • Sampling configuration (rates per log level) is environment-based; production sampling strategy must be defined to avoid log volume surprises.
  • Auto-emit on request end relies on framework hooks; custom middleware or edge deployments may require explicit emit() calls (behavior in such cases is not documented).
  • Structured error format (why/fix fields) is optional but recommended; consistency across codebase depends on developer discipline.

When to avoid it — and what to weigh

  • Client-side or browser-only logging — evlog is server/TypeScript-focused. No evidence of client-side SDK or browser integration in the README.
  • High-volume real-time streaming requirements — Design emits one event per request (not streaming). Sampling is available but behavior under extreme throughput is not documented.
  • Non-Nitro backend frameworks — Depends on h3/Nitro event context. Integration with Express, Fastify, or other frameworks requires custom adapters (not shown in documentation).
  • Legacy Node.js or non-TypeScript projects — TypeScript-first design; ES module or CommonJS compatibility and version requirements are not clearly stated.

License & commercial use

MIT License — standard permissive open-source license allowing commercial use, modification, and redistribution with attribution.

MIT is a permissive OSI-approved license that explicitly permits commercial use, closed-source distribution, and modification. No proprietary restrictions identified. However, verify any custom integrations or enterprise observability backend terms separately.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationStrong
License clarityClear
Deployment complexityLow
DEV.co fitStrong
Assessment confidenceHigh
Security considerations

evlog emits structured JSON with user and context data; ensure PII (user IDs, cart totals, error messages) is not over-logged in sensitive deployments. No explicit security audit, encryption, or data retention policy documented. Sampling helps reduce log volume in production. Verify observability backend's data handling practices.

Alternatives to consider

Pino + structured transport

Mature logging library with high performance; requires manual wide-event construction and transport setup vs. evlog's batteries-included approach.

Winston

Popular multi-transport logger; offers flexibility but lacks opinionated wide-event model and automatic request context injection like evlog.

OpenTelemetry SDK

Comprehensive observability framework with traces, metrics, and logs; steeper learning curve and configuration overhead vs. evlog's request-focused simplicity.

Software development agency

Build on evlog with DEV.co software developers

Start with Nuxt (zero config) or Nitro integration. See evlog.dev for docs, examples, and observability backend setup.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

evlog FAQ

Does evlog work with Express or Fastify?
Not shown in README. evlog is built on h3/Nitro context. Express/Fastify integration would require a custom adapter. Verify with maintainers or documentation at evlog.dev.
Can I use evlog in serverless/edge environments?
Likely supported (Nitro runs on Cloudflare, Vercel, AWS Lambda); however, auto-emit behavior at request end and observability backend transport specifics are not documented. Requires testing.
How much does sampling reduce log volume?
Configurable per log level (e.g., info: 10%, warn: 50%, debug: 0%); exact impact depends on your request volume and rate configuration. Monitor in staging to tune production rates.
What observability backends does evlog support?
README mentions Axiom, PostHog, Sentry, and OTLP in topics, but integration details are not provided. Check evlog.dev documentation or GitHub issues for exporter configs.

Custom software development services

Adopting evlog is usually one piece of a larger software development effort. As a software development agency, DEV.co provides software development services and web development expertise — pairing senior software developers and web developers with your team to design, build, and operate open-source observability software in production.

Ready to replace scattered logs with structured observability?

Start with Nuxt (zero config) or Nitro integration. See evlog.dev for docs, examples, and observability backend setup.