前端打日志思考

简述

打log是大多数研发 调试问题的重要手段

虽然我们推崇尽可能少的调试代码

但毕竟大多数人 都没达到 一口气撸完代码就能完美跑起来的程度

也很难保证线上不出任何问题 例如测速产品 蹭蹭蹭的跑过来 说xxx不行了

作为前端er 一般我们只能喊她抓包

的确前端代码上线后 其实都是能跑起来的, 大多数是因为接口出现了问题 或者前端没对异常数据做好处理

但也有一些时候 我们也会一头雾水, 然后说一句怎么可能

然后就页面连内网 log 打起来调试

其实这样还是不够快速的定位问题

那么本文就探讨下 如何通过日志来提高我们排查问题的效率

总结起来: 打日志是简单的活, 也是非常讲究的活

场景

  • 开发过程中, 出现问题时, 需要有log支撑跑到哪一步, 数据的流动是如何的
  • 线上出现报错时, 需要把log数据上传到Sentry 以便排查问题
  • 线上出现异常时, 没发生报错 需要通过机关把日志上传到Sentry, 以便排查问题

日志库

我们需要一个日志库来满足我们的日常开发需求

  • 分类打日志
  • 支持浏览器和node
  • 在终端里支持不同颜色来显示不同的log类型, 非终端输出能输出正常的log文本
  • 支持切换类型, 例如在终端里就文本形式输出, 当上传到日志服务器时, 需要支持json结构
  • 支持logs的间隔输出时间
  • 友好的日志输出格式

比较通用的数据格式

{
  category: 'auth', //主要用来区分 日志是哪个文件输出的
  message: 'Authenticated user ' + user.email, //主要信息
  level: 'info' // 级别定义
}

打log的要诀

盲目的为问题打log 会导致log过多 而导致很难找到有价值的信息

log分类

前端最常见的就是疯狂console.log 这种产生的log

很容易为了debug问题的时候打的log, 解决完 没删除 之后看到这个log根本不知道是哪里输出的 或者作用是什么

所以我们需要为log分好类

© 404mzk all right reserved,powered by Gitbookhttp://blog.404mzk.com 该文件修订时间: 2020-05-30 08:41:29

results matching ""

    No results matching ""