1.2.9 • Published 8 months ago
node-logkeep v1.2.9
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 。当localLog :true 时必填 |
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 | 依赖服务日志,用于kafka 、rabbitmq 等依赖服务的日志 |
api | 依赖接口异常 |
apiTimeout | 接口超时 |
singleApiTimeout | 单个接口超时。用于扩展apiTimeout ,把apiTimeout 作为所有接口超时,可以监控到是单个接口超时还是所有接口都超时 |
日志级别grade
日志级别 | 说明 |
---|---|
FATAL | 最高级别的日志,上报的异常日志可定义为线上P0、P1事故 |
ALERT | 仅次于FATAL的严重错误,但影响面较多(影响人数1000~10000,P2线上事故) |
ERROR | 严重错误,但影响面较小(影响人数<1000,P3+线上事故) |
WARN | 程序出现了不按预期执行的逻辑,但是对用户无影响。如:从本地缓存获取失败,但是兜底从redis获取 |
INFO | 一些自定义日志,程序不存在异常 |
TRACE | 调试日志 |
功能
- 规范统一的日志收集工具
- 支持日志自动同步到skywalking