温斯顿如何修改时间戳,级别,消息等的输出顺序

时间:2019-01-03 03:18:50

标签: node.js winston

我使用winston进行记录,这是我的代码:

const { createLogger, format, transports } = require('winston')

const logger = createLogger({
  level: 'info',
  format: format.combine(
    format.timestamp({format: 'YYYY-MM-DDTHH:mm:ss'}),
    format.json()
  ),
  transports: [new transports.File({filename: 'logs/new_combined.log'})]
})

logger.info('haha')

输出为:

{"message":"haha","level":"info","timestamp":"2019-01-03T11:13:32"}

我要调整输出顺序,以使timestamp在前面,然后level,然后在message,如下所示:

{"timestamp":"2019-01-03T11:13:32","level":"info","message":"haha"}

该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:1)

这是使用winston.format.printf

可以完成的一种方法
format: format.combine(
    format.timestamp({format: 'YYYY-MM-DDTHH:mm:ss'}),
    format.printf(info => `${JSON.stringify({timestamp: info.timestamp, level: info.level, message: info.message})}`)
  )