Custom framework integration
When the framework you use doesn't have an evlog/<framework> package yet, you build the integration yourself. evlog ships a small toolkit (createMiddlewareLogger, defineFrameworkIntegration) that handles the request-context plumbing — you only write the framework-specific glue.
Build an evlog integration for a custom framework
Canonical guide
The complete walkthrough lives in Custom integration:
- The mental model (request lifecycle → logger creation → enrich → drain)
defineFrameworkIntegration()to declaratively wire request extraction and logger attachmentcreateMiddlewareLogger()for the imperative path- A worked example for a hypothetical framework
This page exists in the build-on-top section as a pointer — it's the same content, just classified by axis.
Non-HTTP runtimes
If you're integrating a non-HTTP runtime (queue worker, CLI driver, cron job, durable execution engine), use createRequestLogger from evlog/toolkit directly — see the same Custom integration page for the lower-level path.
Identity headers
Every drain request sent by evlog is tagged with a User-Agent and an X-Evlog-Source header so receivers can identify the traffic.
Stream server
A local HTTP mini-server on its own port that exposes the in-process stream over Server-Sent Events. Strict opt-in, framework-agnostic, no app route to wire.