使用nirvana-logger进行 nodejs 日志标准化
nirvana-logger 是一个简单的日志包,灵感来源于
debug
和tracer
mesos部署 日志输出到console 的格式为 [时间] [文件] [scope] [content]
k8环境部署 日志输出为json 格式为 {serviceName, timestamp, file, scope, traceId, env, content}
特性
-
自动截断过长内容,默认截断长度为
512
, 通过.setLength()
更改截断长度 -
自动识别K8环境, 如果是K8则日志以
json
格式式输出到指定路径中,否则直接输出到 console -
支持指定文件名
.setName(fileName)
-
支持日志串号设置
.setId(trackId)
安装
yarn add nirvana-logger@latest# 或 npm i nirvana-logger@latest
package.json
用法
// filename: demo.jsconst L = '注册' const articles = code: 200 message: '操作成功' result: titile: '标题' content: '内容' titile: '标题' content: '内容'; // 输出 js object; const error = 'this is custom Error Object'// 直接输出错误对象;
mesos部署方式输出到 console
k8部署输出json 格式为: {serviceName, timestamp, file, scope, traceId, env, content}
实例方法
-
setId 设置串号,方便日志查询
/*** 设置串号* @param* @return*/logger {loggertraceId = traceId;return logger;};example
const trackId = channelCode + ':' userId;L; -
setMaxLength 别名
setLength
设置日志截取长度,默认512
/*** 设置最大长度* @param length*/loggersetLength = logger {loggerstrMaxLen = length;return logger;}; -
setFileName 设置文件名
/**
* 设置文件名
* @param fileName
* @returns {logger}
*/
logger.setName = logger.setFileName = function(fileName = '') {
logger.fileName = fileName;
return logger;
};
单元测试
const fakeLog = args;const fs = ;const execSync = ;const path = ;const L = 'scopeA';L;const sleep = { return { ; };}; ;