框架

框架集成

evlog 支持每一个主要的 TypeScript 框架。选择你的技术栈,几分钟内即可开始使用。

evlog 为每一个主要的 TypeScript 框架提供原生集成。相同的核心 API(log.set()createError()parseError())在所有环境中表现一致。唯一的区别在于设置方式。

概述

框架导入类型日志访问方式状态
Nuxtevlog/nuxt模块useLogger(event)稳定
Next.jsevlog/next工厂useLogger()稳定
SvelteKitevlog/sveltekit钩子event.locals.log / useLogger()稳定
Nitroevlog/nitro模块useLogger(event)稳定
TanStack Startevlog/nitro/v3模块useRequest().context.log稳定
TanStack Routerevlog/nitro/v3模块通过 TanStack Start(使用 Nitro v3)稳定
React Routerevlog/react-router中间件context.get(loggerContext) / useLogger()稳定
NestJSevlog/nestjs模块useLogger()稳定
Expressevlog/express中间件req.log / useLogger()稳定
Honoevlog/hono中间件c.get('log')稳定
Fastifyevlog/fastify插件request.log / useLogger()稳定
Elysiaevlog/elysia插件log(上下文) / useLogger()稳定
Cloudflare Workersevlog/workers工厂createWorkersLogger()稳定
AWS Lambdaevlog手动createLogger() / createRequestLogger()指南
独立使用evlog手动createLogger() / createRequestLogger()稳定
Astroevlog手动createRequestLogger()指南
自定义集成evlog/toolkit自行构建createMiddlewareLogger()测试版

全栈框架

Nuxt

自动导入 useLoggercreateErrorparseError。零配置。

Next.js

createEvlog() 工厂函数,配合 withEvlog() 处理器包装器和客户端提供器使用。

SvelteKit

处理函数与错误处理钩子,日志作用域绑定在 event.locals.log

Nitro

适用于 Nitro v2 和 v3 的模块,提供基于插件的排水和增强钩子。

TanStack Start

使用 Nitro v3 模块配合异步上下文,在服务器函数中实现无缝日志记录。也涵盖 TanStack Router(全栈模式)。

React Router

中间件配合 context.get(loggerContext)useLogger(),适用于加载器与服务。

NestJS

EvlogModule.forRoot() 提供全局中间件、异常过滤器与异步配置。

服务端框架

Express

中间件配合 req.log 和四参数错误处理器。

Hono

中间件配合通过 EvlogVariables 实现的类型化 c.get('log')

Fastify

插件形式提供 request.log,会遮蔽 Fastify 内置的 pino 日志器。

Hono

中间件配合通过 EvlogVariables 实现的类型化 c.get('log')

Fastify

插件形式提供 request.log,会遮蔽 Fastify 内置的 pino 日志器。

Elysia

插件形式提供 log,通过 Elysia 的 derive 注入路由上下文。

Cloudflare Workers

工厂函数用于创建具有 Cloudflare 上下文的作用域日志记录器。

AWS Lambda

每个运行时执行一次 initLogger;每次调用执行 createLogger(适用于 SQS、事件、HTTP API)。

独立使用

适用于脚本、CLI 工具、队列以及任意 TypeScript 进程。

自定义集成

使用 evlog 工具包 API 自行构建中间件。
所有框架均支持以下特性:宽事件结构化错误排水适配器增强器采样 以及 AI SDK 集成

Vite 插件

对于任意基于 Vite 的项目,evlog/vite 插件 提供构建时优化:

  • 自动初始化:无需手动调用 initLogger()
  • 调试剥离:生产环境中自动移除 log.debug()
  • 源码位置:在日志调用中注入 __source: 'file:line'

适用于 SvelteKit、Hono(通过 vite-node)以及任意 Vite 驱动的配置。Nuxt 用户可通过 evlog/nuxt 模块选项获得这些功能。