PM2 的 Cluster 模式下使用 Log4js
配置log4js.config1234567891011121314151617181920{ /** * pm2 (boolean) (optional) * - set this to true if you're running your app using pm2, * otherwise logs will not work (you'll also need to install pm2-intercom as pm2 module: pm2 install pm2-intercom) */ "pm2": true, /** * pm2InstanceVar (string) (optional, defaults to 'NODE_APP_INSTANCE') * - set this if you're using pm2 and have changed the default name of the NODE_APP_INSTANCE variable...
Koa + CLS + Log4js 实现全链路日志系统
什么是全链路日志在线上项目运行期间,经常会出现各种莫名其妙的 bug,而且一个请求往往会经过多个项目的接口调用。比如电商中的下订单,可能会调用到商品服务、优惠券满减服务、会员服务之类的。假如某一时刻下单失败,前端报了个系统异常,怎么样快速定位到底是哪个服务发生了异常,以及定位发生异常的服务具体是报了什么异常日志呢。 这就是全链路日志要做的事情,它把这个请求内调用到的所有请求通过全局 ID 串起来,通过全局 ID 可以把所有涉及到的系统日志都快速地定位出来。 日志开发架构图 之后 Logstash 后可能需要加 Queue 为后续大数据做准备 技术栈 功能 技术栈 日志 Log4js 异步资源追踪 cls-hooked Web 框架 Koa Node 12 REST - 传递 header[trace-id] Axios 思路 请求打进来,由网关下发全局唯一 ID Koa 框架可以获取同步请求的上下文,但在异步中需要上下文持久的问题(比如 async_hook) 需要保证当前项目所有 category 的 log 可用,且打印 trace-id ...
