nodejs 有没有办法以 JSON 格式打印 log4js 输出?

Pra*_*kar 5 javascript node.js log4js-node

我正在尝试以 JSON 格式获取 log4js 的输出,以便我可以轻松跟踪它。有什么方法可以在 configuration.json 中设置,以便 log4js 生成的输出采用 JSON 格式?

目前我正在使用以下配置。

{
 "appenders": [
{
  "category": "XXXXX",
  "type": "dateFile",
  "filename": "XXXXXXXX",
  "pattern": "-from-MM-dd",
  "layout": {
    "type": "messagePassThrough"
  }
},
{
  "category": "XXXXXXXXX",
  "type": "dateFile",
  "filename": "XXXXXXXX",
  "pattern": "-from-MM-dd",
  "layout": {
    "type": "messagePassThrough"
  }
}
 ],
"levels": {
"XXXXConfig":  "INFO",
"XXXXXjectConfig" : "INFO"
 }
}
Run Code Online (Sandbox Code Playgroud)

我得到的输出格式如下:

DEBUG:  1458562784032 : 2016-03-21T12:19:44.4444+00:00 : Data in request: : {
"action": "XXXXXXX",
"user": {
    "username": "XXXX",
     "id" : XXXX,
    "pos" : XXXX
},
"version": 111
}
Run Code Online (Sandbox Code Playgroud)

相反,我想要它(类似于以下结构):

{“id”:“1458562784032”,“时间”:“2016-03-21T12:19:44.4444+00:00”,“消息”:“请求中的数据:”,“数据”:“{“动作”: "XXXXXXX", "user": { "username": "XXXX", "id": XXXX, "pos: : XXXX }, "version": 111 }" }

可能是我在配置中遗漏了一些东西。

谢谢你的帮助。

Pra*_*kar 0

我们可以使用 Bunyan 来实现相同的目的,以 JSON 格式记录控制台日志。这是节点的 npm 链接: https: //www.npmjs.com/package/bunyan

另外,即使您想使用 log4js,也可以创建自己的模式并将日志文件写入 JSON 格式。

谢谢。