let logger = winston.createLogger({
format: {
transform(info, opts) {
info.message = "!" + info.message + "!";
return info;
}
},
transports: [
new winston.transports.Console()
]
});
logger.info("Something");
此代码在我的控制台中输出"未定义"。为什么?如果我使用默认格式,它可以完美运行。但是,如果我使用我自己的甚至来自官方温斯顿示例的自定义格式,它就不起作用。
也许每个版本都不同
const logger = winston.createLogger({
transports: [
new winston.transports.Console({
format: winston.format.printf(info => `!${info.message}!`)
})
]
});
正如
KiDoo Song所提到的,您需要将
format
放入传输选项中。为了自己构建插件,您应该使用
symbol
类型作为键而不是字符串:info[Symbol.for('message')] = `!${info.message}!`;