【问题标题】:Is there any way in nodejs to print log4js output in JSON format?nodejs 中是否有任何方法可以以 JSON 格式打印 log4js 输出?
【发布时间】:2016-07-07 23:22:02
【问题描述】:

我正在尝试以 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"
 }
}

我得到的输出格式如下:

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

而不是我想要它(类似于以下结构):

{“id”:“1458562784032”,“时间”:“2016-03-21T12:19:44.4444+00:00”,“消息”:“请求中的数据:”,“数据”:“{ “行动”:“XXXXXXX”, “用户”:{ "用户名": "XXXX", “身份证”:XXXX, "位置: : XXXX }, “版本”:111 }" }

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

感谢您的帮助。

【问题讨论】:

  • 我为此做了很多尝试,但直到那时都没有得到任何解决方案,相反,我正在创建 JSON 格式的日志并将其推送到日志文件中。所以现在我的日志文件中有 JSON 日志。 :)

标签: javascript node.js log4js-node


【解决方案1】:

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

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

谢谢。

【讨论】:

    【解决方案2】:

    现在有两种方法可以实现这个问题,你可以add your own layouts或者pattern format

    下面是使用JSON格式添加自己的布局的示例代码

    const log4js = require('log4js');
    
    log4js.addLayout('json', function(config) {
      return function(logEvent) { return JSON.stringify(logEvent) + config.separator; }
    });
    
    log4js.configure({
      appenders: {
        out: { type: 'stdout', layout: { type: 'json', separator: ',' } }
      },
      categories: {
        default: { appenders: ['out'], level: 'info' }
      }
    });
    
    const logger = log4js.getLogger('json-test');
    logger.info('this is just a test');

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多