如何将JSONlogging到控制台并让cloudwatch日志选取正确的元数据?

winston.info('Hello again distributed logs', { app: 'test', sid: 1 }) pino.info('Hello again distributed logs', { app: 'test', sid: 1 }) 

输出:

 {"app":"test","sid":1,"level":"info","message":"Hello again distributed logs","timestamp":"2017-02-16T03:34:06.186Z"} {"pid":4269,"hostname":"Macchiato.local","level":30,"time":1487216046197,"msg":"Hello again distributed logs {\"app\":\"test\",\"sid\":1}","v":1} 

我已经fluentd守护进程拾取容器stdout并将其发送到cloudwatch。

在上面的例子中,cloudwatchlogs可以从pino中正确地检测到元数据,我将能够像这样查询日志

 {$.app = "test"} 

然而,winston控制台不是这样工作,一切都推到log属性。

有谁知道如何解决这一问题。 我用json: true使用winston控制台json: truestringify: true

结果这不是winston的问题。

我使用pm2来运行节点,我需要通过 – --raw arg来获取原始日志。

Interesting Posts