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.
Key facts
Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.
| Field | Value |
|---|---|
| Repository | HugoRCD/evlog |
| Owner | HugoRCD |
| Primary language | TypeScript |
| License | MIT — OSI-approved |
| Stars | 1.5k |
| Forks | 48 |
| Open issues | 15 |
| Latest release | [email protected] (2026-07-04) |
| Last updated | 2026-07-06 |
| Source | https://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.
Get the evlog source
Clone the repository and explore it locally.
git clone https://github.com/HugoRCD/evlog.gitcd evlog# follow the project's README for install & configurationNeed it deployed, integrated, or customized instead? DEV.co ships production installs.
Best use cases
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.
| Signal | Assessment |
|---|---|
| Maintenance | Active |
| Documentation | Strong |
| License clarity | Clear |
| Deployment complexity | Low |
| DEV.co fit | Strong |
| Assessment confidence | High |
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.
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.coRelated on DEV.co
Explore the category and the services that help you build with it.
evlog FAQ
Does evlog work with Express or Fastify?
Can I use evlog in serverless/edge environments?
How much does sampling reduce log volume?
What observability backends does evlog support?
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.