Nestjs框架: 日志和官方日志

NestJS 统一异常处理 + 日志追踪链路设计 我们来系统性分析NestJS 统一异常处理 + 日志追踪链路设计目标实现❗ 异常统一结构全局@Catch()Filter + HttpException 规范🔗 Trace ID中间件生成 UUID,挂载 req.headers / req.traceId🧾 日志打点在 controller / service / errorFilter / middleware 处打印📘 错误码管理code => message 映射表,推荐配置表 + i18n🔍 安全性不暴露栈信息、脱敏字段过滤。 阅读详情

日志类型,功能分类,记录位置

  • 日志作用
    • 记录错误并定位问题
  • 日志需要怎么定位问题
    • 什么时间发生的
    • 发生了什么事情
    • 错误是什么
  • 日志等级(类型)
    • Log: 通用日志,按需进行记录(打印)
    • Warning: 警告日志,比如:尝试多次进行数据库操作
    • Error: 严重日志,比如:数据库异常
    • Debug: 调试日志,比如:加载数据库日志
    • Verbose: 详细日志,所有操作与详细信息(非必要不打印)
  • 日志分类
    • 错误日志 -> 方便定位问题,给用户友好的提示
    • 调试日志 -> 方便开发
    • 请求日志 -> 记录敏感行为
  • 日志记录位置
    • 控制台日志 -> 方便监看 (调试用)
    • 文件日志 -> 方便回溯与追踪 (24小时滚动)
    • 数据库日志 -> 敏感操作、敏感数据记录

日志等级的使用


1)分环境

  • dev: log, error, warning, debug, verbose
  • staging: log, error, warning
  • prod: log, error, api

2 )位置

  • log: console
  • error: 文件/db
  • warning: console/文件
  • debug: console/文件
  • verbose: console
  • api: console/db

3 ) 在Nestjs中记录日志

Log Error Warning Debug Verbose API
Dev ✅ ✅ ✅ ✅ ✅ ❌
Staging ✅ ✅ ✅ ❌ ❌ ❌
Prod ✅ ✅ ❌ ❌ ❌ ✅
位置 console 文件/DB console/文件 console/文件 console console/DB

Nestjs 内置日志模块:Logger


1 )如果项目中,使用 typeORM,需要关闭,日志开关如下


        
Nestjs 使用log4js实现日志输出 将 log4js-node 配置 阅读详情

相关推荐

Nest系列:NestJS 中 Logger 完全指南:从基础到企业级实践-04

创建context?基础使用:快速实现基本日志需求企业扩展:支持结构化日志、分布式追踪性能优化:平衡日志详细度与系统开销日志可视化(ELK/Grafana)错误聚合(Sentry/Rollbar)审计日志(专用存储+访问控制)

一路走一路学,总会不落后 766

Nestjs框架: 可集成在Nestjs上的日志模块pino和winston的使用

两个第三方的包:winston, pinowinston好处:DailyRotateFile 方便winston缺点:是需要在自己手动加入日志,, 麻烦pino的好处:开箱即用pino的缺点:配置没有winston丰富Nest官方内置的日志,够用,但是不详细关于选择懒人用pino, 而且性能较高用 winston,一般日志手动加,方便调试。

Wang的专栏 2281

Nestjs框架: NestJS 其核心设计逻辑与模块化架构

摘要: NestJS虽比轻量级HTTP框架(如Express、Koa)更复杂,但其成熟生态和模块化设计能显著提升开发效率。选择NestJS的核心原因在于避免重复造轮子,其内置的依赖注入、装饰器等功能覆盖了数据校验、数据库操作、权限控制等通用场景。针对“NestJS太重”的痛点(如TypeScript门槛、Angular/Spring架构思想),可通过封装通用模块降低学习成本。框架设计围绕“请求-响应”流程,关键包括:数据校验(class-validator)、数据库连接(TypeORM)、权限控制(Guar

Wang的专栏 1990

【全网最新】使用 1panel面板 部署若依系统( springboot 和 vue)项目

打开前端项目的vue.config.js文件,检查devServer下的proxy代理部分,然后将下面这个端口修改为你要在打包后访问的端口,即使用nginx代理前的接口。这个端口默认是80端口,这里把其修改为不会冲突的8010端口,后台接口的地址配置为9080,不过感觉这里设置的8010和9080可能没有用,因为部署前端静态页面是,也配置了一次网页的外部接口和api的接口,后期有空了再验证。打开右侧的Maven,点击:生存期->package,然后点击运行,等待打包成功,包在如图所示的文件夹中。

老薛的专栏 1758

工业相机图像格式深度解析:从Mono8到Mono12的选型与应用

本文深度解析工业相机黑白图像格式,重点对比Mono8、Mono10与Mono12的核心差异。文章从位深、动态范围和数据量等关键概念切入,详细阐述了不同格式的优缺点及适用场景,为工业视觉项目中的相机选型提供实战指南,帮助用户在精度、速度与成本间做出最优决策。

weixin_29207439的博客 263

科研党必备:用Python+Excel批量下载文献的保姆级教程(附常见错误解决)

本文提供了一套利用Python和Excel实现外文文献批量下载的自动化解决方案。教程详细介绍了如何从数据库导出并清洗DOI信息,编写健壮的Python脚本进行批量下载,并包含错误处理与进阶优化技巧,旨在帮助科研人员将重复性劳动自动化,大幅提升文献收集效率。

weixin_29050513的博客 310

海豚调度器(dolphinscheduler)再次使用,添加钉钉预警

1,首先我们部署是海豚调度器 1.3.8版本,由于页面只有邮件预警,所以在了解源码的同时,需要添加钉钉预警 2,说明,这一块是同事搞的,不是我搞的,新版本的dolphinscheduler已经有了钉钉模块,只是新版本还没有发布 3,我们现在只是添加简单的钉钉预警,任务成功或者失败会发送邮件+钉钉 4,具体操作 找到最新的源码devhttps://github1s.com/apache/dolphinscheduler/blob/dev/dolphinscheduler-alert/src/ma...

qq_31866793的博客 3085

Windows升级保留个人文件和应用灰色?改注册表版本指纹

Windows 升级安装并非简单跳过下一步,安装程序会先读取注册表中 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion 下的 EditionID、ProductName、CompositionEditionID 等版本指纹,与目标镜像 install.wim/esd 记录的版本类型做双向匹配。若当前系统被识别为 LTSC、精简版或跨版本降级,兼容性扫描会判定升级路径不可用,于是“保留个人文件和应用”变灰,只能全新安装。理解版本指纹与升级可行性表的匹配机制,可

weixin_31986143的博客 378

计算机模拟爆破过程,基于LSDYNA岩石爆破模拟建模分析

原标题:基于LSDYNA岩石爆破模拟建模分析 Ls Dyna岩石爆破模拟仿真作者:dyna_focus擅长领域:dyna/abaqus/hypermesh一、 数值模型的建立1.1 单元及算法的选择岩石,炸药,空气都采用solid164实体单元。岩石采用常应力实体单元,该种单元属于纯粹的lagrange算法,该种算法单元网格附着在材料上,随着材料的流动而产生单元网格的变形,但是在结构变形巨大时,有...

weixin_29494379的博客 7317

【系统架构设计师】十、统一建模语言UML(基本概念|UML2.0|SysML)

UML 2.0 提供了 14 种图,分别是类图、对象图、用例图、序列图、通信图(协作图)、状态图、活动图、构件图(组件图)、部署图、制品图、组合结构图、包图、交互概览图和计时图(定时图)。序列图、通信图、交互概览图和计时图均被称为交互图。 系统建模语言(SysML)是一种通用图形建模语言,用于指定,分析,设计和验证可能包括硬件,软件,信息,人员,程序和设施的复杂系统。特别是,该语言提供了图形表示,其具有用于建模系统需求,行为,结构和参数的语义基础,用于与其他工程分析模型集成。

帅次的博客 2523

融合Retinex理论与Transformer的YOLOv8低光照目标检测增强方法【YOLOv8】

图像分解:将输入图像分解为光照成分和反射成分。光照估计:估计光照图以消除暗光区域。图像重建:将光照增强后的反射图像重建成最终图像。Retinexformer通过在Transformer中引入Retinex的图像增强思路,使得低光照图像的细节能够得到充分保留。本文提出了一种基于Retinexformer的低光照增强方法,用于改进YOLOv8模型在夜间和低光照环境下的目标检测性能。

博客 1931

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: React18源码: Fiber树的初次创建过程图文详解
下一篇: Nestjs框架: 可集成在Nestjs上的日志模块pino和winston的使用
Wang's Blog
博客等级 码龄12年 7434粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值