Nodejs日志怎么打

830 阅读3分钟

这是我参与12月更文挑战的第19天,活动详情查看:2021最后一次更文挑战

对于web服务端应用开发来说,日志非常重要。它可以监控应用的运行状态,还可以用来进行问题排查。

如何打好日志需要关注的点非常多。

日志路径

日志可以放到项目文件夹下面,或者放到统一的日志文件夹。但是在多台机器的情况下,可以查找日志信息就不太方便。这时候可以考虑将日志打到统一的日志服务中,这样便于统一管理。

日志分类

需要根据不同的场景,对日志进行分类,这样可以根据不同的需求查看不同的日志。比如,可以分为业务相关日志、框架内核插件日志、错误日志等等,当然可以根据实际情况进行进一步的细分,初步的分类通常可以借助框架来实现。

如何打印日志

需要在一些关键节点打印日志,打印的日志内容需要带上相关且必要的信息。

需要注意的是对于错误日志,一定要构建Error类型,因为只有Error类型才会带上堆栈信息,能帮助定位问题。

日志切割

日志文件很多,为了方便查看,需要对日志文件进行恰当的管理。其中比较关键的就是日志切割,即日志按照什么维度进行切分管理。常见的有按文件大小进行切割、按时间进行切割等等,需要按照自己的需求进行选择。

性能

通常我们默认web服务是高频访问,不能每次产生一条日志都写入到磁盘中,或者通过网络请求发送到日志服务中,这样会产生大量io操作,影响性能。可以采用一些提高性能的策略,如将日志写入缓存然后每隔一段时间集中存储。

接入统一日志服务

下面以阿里云的日志服务为例说一下如何接入统一的日志服务。

  1. 开通服务,通常为防止欠费停机最好申请下免停服务

  2. 创建日志存储仓库logstore

  3. 进行客户端配置,客户端接入日志sdk,通过sdk提供的api进行日志的生产及查看等

  4. 如果有长时间保存日志的需求,还需要进行日志的投递等

接入统一的日志服务,也需要注意上面提到的日志分类问题,只有对日志进行合理的分类。

日志监控报警

日志里面有很多信息需要我们重点关注,这时候就需要引入跟日志系统打通的告警机制,通过设置合理告警规则,当日志出发告警规则,能第一时间采取措施,将损失降到最低。