![New axobject-query Maintainer Faces Backlash Over Controversial Decision to Support Legacy Node.js Versions](https://cdn.sanity.io/images/cgdhsj6q/production/86e6ebdea652d20da070ebbda20134b839972db7-1024x1024.webp?w=800&fit=max&auto=format)
Security News
New axobject-query Maintainer Faces Backlash Over Controversial Decision to Support Legacy Node.js Versions
A JavaScript library maintainer is under fire after merging a controversial PR to support legacy versions of Node.js.
egg-json-logger-wrapper
Advanced tools
Readme
JSON 化输出logger, 使用 阿里云日志服务 => LogStore => 采集日志 => 文本格式日志 => JSON模式
$ npm i egg-json-logger --save
// {app_root}/config/plugin.js
exports.logger = {
enable: true,
package: 'egg-json-logger',
};
//由于暂时无法 在插件扩展的 extend.js 里覆盖egg内置extend的属性(logger),
//只能具体服务里的extend.js里覆盖
// {app_root}/app/extend/context.js
module.exports = {
get logger() {
return this.jsonLogger
},
get coreLogger() {
return this.jsonLogger
}
}
this.logger = ctx.logger + 文件pathName + ctx.meta(reqid/uid/use)
this.logger.info('日志的关键字', '日志的内容1', '日志的内容2'...)
ctx.logger.info('[middlewave.中间件文件名称]', '日志的关键字', '日志的内容1', '日志的内容2'...)
app.logger.info('[middlewave.中间件文件名称]', '日志的关键字', '日志的内容1', '日志的内容2'...)
app.logger.info('[model.模型文件名称]', '日志的关键字', '日志的内容1', '日志的内容2'...)
app.logger.info('[任何from]', '日志的关键字', '日志的内容1', '日志的内容2'...)
// {app_root}/config/config.default.js
exports.logger = {
// 在 已有的 logger 扩展配置参数,以下是默认的扩展参数
// 忽略 request/reponse 日志的路由, 用于过滤存活检测/静态资源等路由, 支持字符和正则
ingore: ['/', /.+\.{html|css|js}/],
//以下两个参数必须至少有一个为 true
//是否输入扁平化JSON的日志, 默认不输出
flattenr: false,
//是否序列化输出,默认输出
stringify: true,
event: {
// 是否输出 request/reponse/error 事件日志
request: true,
response: true,
error: true,
},
};
//request event log
{
level: 'INFO',
date: '2018-08-08 16:00:43',
pid: 6535,
hostname: 'MokdeMacBook-Pro.local',
from: 'request',
//请求贯穿整条线
reqid: '403229b7-84f0-454d-a906-a09992ea6ada',
ip: '127.0.0.1',
origin: 'http://127.0.0.1:7001',
host: '127.0.0.1:7001',
method: 'GET',
path: '/index/123',
url: '/index/123?key=123',
//三种参数位置都会打印
body: {},
query: { key: '123' },
params: {},
//有内容的会被展开
'query.key': '123'
}
//controller/service log
this.logger.info('massage', {obj: 123}, [{arroy: 123}])
{
level: 'INFO',
date: '2018-08-08 16:00:43',
pid: 6535,
hostname: 'MokdeMacBook-Pro.local',
from: 'controller.home',
log1: 'massage',
//string化的 和 扁平化的对象形式
log2: { obj: 123 },
'log2.obj': 123,
log3: [ { arroy: 123 } ],
'log3.0.arroy': 123,
reqid: '403229b7-84f0-454d-a906-a09992ea6ada',
uid: '',
use: 8
}
{
level: 'DEBUG',
date: '2018-08-08 16:00:43',
pid: 6535,
hostname: 'MokdeMacBook-Pro.local',
from: 'controller.home',
log1: 'massage',
'log2.obj': 123,
log2: { obj: 123 },
'log3.0.arroy': 123,
log3: [ { arroy: 123 } ],
reqid: '403229b7-84f0-454d-a906-a09992ea6ada',
uid: '',
use: 8
}
//error event log
{
"level": "ERROR",
"date": "2018-08-13 18:50:11",
"pid": 6629,
"hostname": "MokdeMacBook-Pro.local",
"from": "error",
"reqid": "a24c82dd-b58b-4652-ad70-395598e773d9",
"ip": "127.0.0.1",
"origin": "http://127.0.0.1:7001",
"host": "127.0.0.1:7001",
"method": "GET",
"path": "/index/123",
"url": "/index/123?key=123",
"body": {},
"query": {"key": "123"},
"params": {"abc": "123"},
"error": {
"name": "Error",
"message": "ReferenceError: hi is not defined",
"stack": "Error ReferenceError hi is not defined at getErrorJson (/Users/mok/Desktop/x-standard/node_modules/egg-json-logger/lib/util.js 33 13) at Application.app.on (/Users/mok/Desktop/x-standard/node_modules/egg-json-logger/app.js 29 20) at emitTwo (events.js 131 20) at Application.emit (events.js 214 7) at /Users/mok/Desktop/x-standard/node_modules/egg-ecarx-interface/app/middleware/interface.js 29 17 at _combinedTickCallback (internal/process/next_tick.js 131 7) at process._tickCallback (internal/process/next_tick.js 180 9)"
},
"query.key": "123",
"params.abc": "123",
"error.name": "Error",
"error.message": "ReferenceError: hi is not defined",
"error.stack": "Error ReferenceError hi is not defined at getErrorJson (/Users/mok/Desktop/x-standard/node_modules/egg-json-logger/lib/util.js 33 13) at Application.app.on (/Users/mok/Desktop/x-standard/node_modules/egg-json-logger/app.js 29 20) at emitTwo (events.js 131 20) at Application.emit (events.js 214 7) at /Users/mok/Desktop/x-standard/node_modules/egg-ecarx-interface/app/middleware/interface.js 29 17 at _combinedTickCallback (internal/process/next_tick.js 131 7) at process._tickCallback (internal/process/next_tick.js 180 9)"
}
// response event log
{
level: 'WARN',
date: '2018-08-08 16:00:43',
pid: 6535,
hostname: 'MokdeMacBook-Pro.local',
from: 'response',
reqid: '403229b7-84f0-454d-a906-a09992ea6ada',
uid: '',
use: 15,
ip: '127.0.0.1',
host: '127.0.0.1:7001',
origin: 'http://127.0.0.1:7001',
method: 'GET',
path: '/index/123',
url: '/index/123?key=123',
body: {},
query: { key: '123' },
params: { abc: '123' },
'query.key': '123',
'params.abc': '123',
response: {
success: false,
code: 500,
message: 'hi is not defined',
data: ''
}
'response.success': false,
'response.code': 500,
'response.message': 'hi is not defined',
'response.data': ''
}
FAQs
JSON 化输出logger, 使用 阿里云日志服务 => LogStore => 采集日志 => 文本格式日志 => JSON模式
The npm package egg-json-logger-wrapper receives a total of 2 weekly downloads. As such, egg-json-logger-wrapper popularity was classified as not popular.
We found that egg-json-logger-wrapper demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A JavaScript library maintainer is under fire after merging a controversial PR to support legacy versions of Node.js.
Security News
Results from the 2023 State of JavaScript Survey highlight key trends, including Vite's dominance, rising TypeScript adoption, and the enduring popularity of React. Discover more insights on developer preferences and technology usage.
Security News
The US Justice Department has penalized two consulting firms $11.3 million for failing to meet cybersecurity requirements on federally funded projects, emphasizing strict enforcement to protect sensitive government data.