【问题标题】:How to remove [Symbol] fields from winston@3 logger output?如何从 winston@3 记录器输出中删除 [符号] 字段?
【发布时间】:2018-12-24 23:10:29
【问题描述】:

这是 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() } })

打印出来:

{ 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 } } ] }

我想从输出中删除一些字段:[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' }

【问题讨论】:

  • 您找到解决方案了吗?同样的问题。

标签: node.js logging winston


【解决方案1】:

您可以修改日志输出及其格式。这是官方文档: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
});

【讨论】:

  • 它对我不起作用,它打印一个错误:throw new Error('Invalid transport, must be an object with a log method.'); 这是一个演示代码:` const winston = require("winston") const logger = winston.createLogger() logger。 add(winston.transports.Console, { level: "error", prettyPrint: true, silent: false, timestamp: true, json: false }) logger.info("test message", { data: { a: 1, b : [1, 2, 3, 4], d: new Date() } }) `
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-03
  • 2016-10-25
  • 1970-01-01
  • 2010-12-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多