前言

程序运行时,你怎么知道它是否正常?出问题了,你怎么知道哪一步出了错?

这些问题的答案就是 日志。日志是程序运行时留下的"行动记录",是排查问题最重要的工具。

我们该如何在 NestJS 中正确地处理日志呢?本文将从日志等级、日志存储位置、NestJS 内置 Logger、第三方日志库(Winston、Pino)、全局异常过滤器、请求日志中间件等方面进行详细讲解。


二、日志等级

日志按照严重程度分为以下等级(从低到高):

等级说明
Verbose最详细的信息,例如接口耗时,非必要不使用
Debug调试信息,例如接口入参、返回值,仅开发阶段使用
Log通用日志,记录普通运行信息
Warning警告,例如即将废弃的接口
Error错误,例如接口异常、数据库报错

三、日志写到哪里?

不同场景下,日志的存储位置不一样:

日志类型推荐位置
普通日志控制台 + 文件
错误日志文件 + 数据库
警告日志控制台 + 文件
调试日志控制台(仅开发阶段)
API 日志控制台 + 数据库(生产)

不同阶段的建议:

LogErrorWarningDebugVerboseAPI 日志
开发阶段
预发布阶段
生产环境

此处内容已隐藏回复后方可阅读。

分类: NestJS中级 标签: Nestjswinston日志LoggerPino

评论

暂无评论数据

暂无评论数据

目录