框架
框架集成
evlog 支持每一个主要的 TypeScript 框架。选择你的技术栈,几分钟内即可开始使用。
evlog 为每一个主要的 TypeScript 框架提供原生集成。相同的核心 API(log.set()、createError()、parseError())在所有环境中表现一致。唯一的区别在于设置方式。
没有 HTTP 框架?对于脚本、库和 worker,请使用 Standalone TypeScript;在边缘环境中请使用 Cloudflare Workers。
概述
| Framework | Import | Type | Logger Access | Status |
|---|---|---|---|---|
| Nuxt | evlog/nuxt | 模块 | useLogger(event) | 稳定 |
| Next.js | evlog/next | 工厂 | useLogger() | 稳定 |
| SvelteKit | evlog/sveltekit | 钩子 | event.locals.log / useLogger() | 稳定 |
| Nitro | evlog/nitro | 模块 | useLogger(event) | 稳定 |
| TanStack Start | evlog/nitro/v3 | 模块 | useRequest().context.log | 稳定 |
| TanStack Router | evlog/nitro/v3 | 模块 | 通过 TanStack Start 使用(使用 Nitro v3) | 稳定 |
| React Router | evlog/react-router | 中间件 | context.get(loggerContext) / useLogger() | 稳定 |
| NestJS | evlog/nestjs | 模块 | useLogger() | 稳定 |
| Express | evlog/express | 中间件 | req.log / useLogger() | 稳定 |
| Hono | evlog/hono | 中间件 | c.get('log') | 稳定 |
| Fastify | evlog/fastify | 插件 | request.log / useLogger() | 稳定 |
| Elysia | evlog/elysia | 插件 | log(上下文) / useLogger() | 稳定 |
| oRPC | evlog/orpc | 处理器包装器 + 中间件 | context.log / useLogger() | 稳定 |
| Cloudflare Workers | evlog/workers | 工厂 | createWorkersLogger() | 稳定 |
| AWS Lambda | evlog | 手动 | createLogger() / createRequestLogger() | 指南 |
| Standalone | evlog | 手动 | createLogger() / createRequestLogger() | 稳定 |
| Astro | evlog | 手动 | createRequestLogger() | 指南 |
| Custom | evlog/toolkit | 自行构建 | createMiddlewareLogger() | Beta |
API 速查表
每个框架有两点不同:如何引导 evlog,以及如何访问请求日志器。
引导
| Pattern | Frameworks |
|---|---|
evlog(options) middleware / plugin | Hono, Express, Fastify, Elysia, SvelteKit, React Router |
createEvlog(options) factory | Next.js |
EvlogModule.forRoot() | NestJS |
| Module default export | Nuxt, Nitro v2/v3 |
| Manual factory | Cloudflare Workers (createWorkersLogger), Standalone, AWS Lambda, Astro |
Logger access
| Pattern | Frameworks |
|---|---|
useLogger(event) | Nuxt, Nitro |
useLogger() | Next.js, NestJS, Express, Fastify, Elysia, SvelteKit, React Router |
c.get('log') | Hono — no useLogger() export |
req.log | Express |
request.log | Fastify |
event.locals.log | SvelteKit |
context.get(loggerContext) | React Router |
createRequestLogger() / createLogger() | Standalone, Workers, manual setups |
全栈框架
服务端框架
Vite 插件
对于任何基于 Vite 的项目,evlog/vite 插件 都会添加构建时优化:
- 自动初始化:无需手动调用
initLogger() - 调试剥离:生产环境中自动移除
log.debug() - 源码位置:在日志调用中注入
__source: 'file:line'
适用于 SvelteKit、Hono(通过 vite-node)以及任意 Vite 驱动的配置。Nuxt 用户可通过 evlog/nuxt 模块选项获得这些功能。