Compare
evlog 与 Consola:报告器和请求上下文
在终端交互或自定义报告器方面继续使用 Consola;当应用需要累积请求事件时,评估 evlog。
Nuxt 应用可能同时需要可读的终端消息,以及能够到达日志后端的请求事件。Consola 和 evlog 通过不同的 API 满足这些需求。先从输出目标以及负责维护传递代码的一方入手。
保留你所依赖的报告器行为
Consola 报告器接收日志对象,并控制渲染或传递。自定义报告器可以序列化 JSON 并转发记录,因此即使默认未包含 JSON 报告器,也可以实现结构化输出。Consola 还提供标签、控制台包装和提示辅助工具。暂停的日志会排队,重复消息可以进行节流。请参阅 Consola 文档。
这些行为可能适用于 CLI 或生产应用。替换它们需要的不只是更改导入。
比较应用工作
| 需求 | evlog 方式 | 迁移问题 |
|---|---|---|
| 跨请求的上下文 | set() 在操作日志记录器上累积字段 | 哪些层会添加字段,以及谁会完成事件? |
| 输出到后端 | Drain 适配器和管道配置 | 适配器是否保留了当前报告器实现的协议? |
| 单条消息 | 全局结构化日志 API | 哪些调用签名和字段需要更改? |
| 终端交互 | 日志输出 | 提示和其他 CLI 交互是否应继续由 Consola 处理? |
Consola 标签限定记录的范围。evlog 操作日志记录器会累积上下文,直到发出事件。这些是不同的契约,因此只有在能够保留你查询或显示它们的方式时,才应将标签映射到应用字段。
在有帮助的地方采用请求事件
在应用中,将终端交互与请求插桩分开。为处理程序选择 evlog 框架集成,并在贡献字段的各层中使用 useLogger()。除非有意进行重复摄取,否则也不要通过自定义报告器捕获这些已发出的记录并将其转发到同一目标。
对于 CLI,Standalone TypeScript 指南介绍了显式初始化和待处理传递。对于处理程序,Wide Events解释了何时进行累积和发出。在替换自定义传递报告器之前,请查看Drain 适配器。
当 Consola 的报告器和终端工作流满足你的需求时,请继续使用 Consola。当 evlog 的请求上下文、结构化错误和 Drain 管道能够移除你原本需要维护的代码时,再添加或采用 evlog。有关其他配置模型,请参阅日志记录器概览。