Node日志感受

本文详细介绍了日志在软件开发中的重要性,包括错误追踪、应用监控及性能调试。阐述了不同日志类型如appLogger、coreLogger的作用,以及日志级别的合理运用。强调了日志编码、切割和正确输出方式,确保日志系统的高效与稳定。

why

日志是用来记录程序运行重要的工具

  • 记录请求日志,关键节点打上日志,可以追踪问题(生产
  • 方便调试,定位故障
  • 监控应用的运行状态

what(egg.js为例)

日志分为:

  • appLogger应用日志,也是我们自定义的日志
  • coreLogger核心框架,插件日志
  • errorLogger
  • agentLogger用于监控agent日志

日志级别:

  • ctx.logger.debug()
  • ctx.logger.info()
  • ctx.logger.warn()
  • ctx.logger.error()
  • 以appLogger为例,一共4*4种

日志编码:

  • 默认utf-8

feature

目前日志都支持切割,每天一个文件,以.log.2019-09-14为尾缀(小时切割和文件大小切割实用性不高),编写日志的时候我们也需要注意如下几点:

  • 在关键请求关键位置打好日志

  • 打印日志注明这是哪个文件哪个方法处理的日志

    • logger.debug(`>>>> Entering yourMethod(month = ${month}, count= ${count}");
      //通过日志 >>>> 和 <<<< 将给出函数输入和退出的信息
      
  • 日志不能太多,一个是查问题日志太多,第二个是对硬盘写入日志也有一定性能影响(egg是写入内存,每秒保存一次硬盘)

  • 合理使用try-catch来进行日志输出

  • 日志写法一定要避免简洁,不要日志再抛错(正常打印参数,打印处理结果)

  • 日志不能具备除了日志以外的功能

  • 正确把握日志级别,info记录信息(最主要的),debug显示调试信息,warn显示警告,error保存数据库请求类型的报错

  • 尽量使用ctx.logger而并非console.log,后者将会把所有日志打印在stdout中,无法关闭或打开调试信息,并且不区分级别

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值