如何从 winston@3 记录器输出中删除 [Symbol] 字段?

Max*_*ock 7 logging node.js winston

这是 winston@3 记录器的演示代码:

const { createLogger, format, transports } = require("winston")
const { combine, timestamp, prettyPrint } = format

const logger = createLogger({
  format: combine(timestamp(), prettyPrint({ colorize: true }))
})

logger.add(new transports.Console())

logger.info("test message", { data: { a: 1, b: [1, 2, 3, 4], d: new Date() } })
Run Code Online (Sandbox Code Playgroud)

它打印:

{ data: { a: 1, b: [ 1, 2, 3, 4 ], d: 2018-07-17T09:38:43.253Z },
  level: 'info',
  message: 'test message',
  timestamp: '2018-07-17T09:38:43.253Z',
  [Symbol(level)]: 'info',
  [Symbol(splat)]:
   [ { data: { a: 1, b: [ 1, 2, 3, 4 ], d: 2018-07-17T09:38:43.253Z } } ] }
Run Code Online (Sandbox Code Playgroud)

我想从输出中删除一些字段:[Symbot(level)], [Symbot(splat)],所以我想要这样的输出:

{ data: { a: 1, b: [ 1, 2, 3, 4 ], d: 2018-07-17T09:38:43.253Z },
  level: 'info',
  message: 'test message',
  timestamp: '2018-07-17T09:38:43.253Z' }
Run Code Online (Sandbox Code Playgroud)

小智 0

您可以修改日志输出及其格式。这是官方文档:https://github.com/winstonjs/winston#streams-objectmode-and-info-objects

这是示例:

logger.add(winston.transports.Console, {
    level       : 'error',
    prettyPrint : true,
    silent      : false,
    timestamp   : true,
    json        : false
});
Run Code Online (Sandbox Code Playgroud)