node-logkeep

1.2.9 • Public • Published

node-logkeep

Node日志管理工具

目录表

使用文档

安装

npm install node-logkeep

注册/初始化

const ServerLogger = require('node-logkeep');

const logger = new ServerLogger({
    // APM 采集器地址
    apmAddress: 'http://127.0.0.1',
    // 日志是否写入本地
    localLog: true,
    // 本地日志文件路径.localLog=true时必填
    localDir: './logs/app.log',
    // 业务树,同skywalking service参数
    service: 'test-fron',
    // 业务版本标识,同skywalking serviceVersion
    serviceVersion: 'pc_server_1.0,test-front',
    // 部门标识
    group: 'dept',
    // 子部门标识,部门下的二级标识
    subGroup: 'subdept'
});

ServerLogger(options)options字段说明见初始化参数

日志上报

API:logger.log(logObject, context)

  • logObject:详细字段见日志规范
  • context:上下文信息,可选参数,建议带上
logger.log({
    name: 'var error',
    message: 'a is not a function',
    stack: '',
    grade: 'INFO',
    category: 'defalut'
}, { ctx });

API:logger.info(logInfo, context)

  • logInfo:info日志对象,包含日志名称name和日志信息message两个字段。name是必填字段,message是可选字段,不传入message时默认等于name。
  • context:上下文信息
logger.log({
    name: 'var error',
    message: 'a is not a function',
}, { ctx });

API字段说明

初始化参数

字段名称 字段类型 是否必填 说明
apmAddress string 日志采集器地址,不填写则不会自动上报
service string 业务树,同skywalking service参数
serviceVersion string 业务版本标识,同skywalking serviceVersion。默认与service相同
group string 部门标识
subGroup string 二级部门标识
localLog boolean 是否日志是否需要写入本地日志
localDir string 本地日志文件路径,如:./logs/app.log。当localLogtrue时必填
sendTime number 日志上报间隔,默认60000(即60s)
onceUploadLength number 每次上报日志条数,默认10
maxQueueLength number 日志队列最大存储条数,默认 1000

服务端日志

日志字段 字段类型 是否必填 说明
name string 错误名称
message string 错误信息
stack string 错误堆栈信息
category string 错误分类,默认为default
grade string 否 | 日志等级,详见日志级别grade
context object 上下文信息,最终会转成字符串上报JSON.stringify(obj)

日志分类category

category内置了以下几个类型的日志,如果不满足需求,也可以根据自身业务定义

日志类别 说明
defalut 默认值
request 接口日志
frame 框架层日志信息。如koa app.on('error', haadle)
business 业务逻辑日志
arg 参数相关异常
authority 权限类异常日志
render 服务端渲染renderToString日志
file 文件相关类日志
service 依赖服务日志,用于kafkarabbitmq等依赖服务的日志
api 依赖接口异常
apiTimeout 接口超时
singleApiTimeout 单个接口超时。用于扩展apiTimeout,把apiTimeout作为所有接口超时,可以监控到是单个接口超时还是所有接口都超时

日志级别grade

日志级别 说明
FATAL 最高级别的日志,上报的异常日志可定义为线上P0、P1事故
ALERT 仅次于FATAL的严重错误,但影响面较多(影响人数1000~10000,P2线上事故)
ERROR 严重错误,但影响面较小(影响人数<1000,P3+线上事故)
WARN 程序出现了不按预期执行的逻辑,但是对用户无影响。如:从本地缓存获取失败,但是兜底从redis获取
INFO 一些自定义日志,程序不存在异常
TRACE 调试日志

功能

  • 规范统一的日志收集工具
  • 支持日志自动同步到skywalking

Readme

Keywords

Package Sidebar

Install

npm i node-logkeep

Weekly Downloads

2

Version

1.2.9

License

ISC

Unpacked Size

211 kB

Total Files

23

Last publish

Collaborators

  • xxtab