我想在Winston中使用不同的控制台和文件传输格式,因为我想使用粉笔模块自己着色控制台日志。
我使用以下代码创建了记录器:
this.logger = createLogger({
levels: {
fatal: 0,
error: 1,
warning: 2,
info: 3,
debug: 4,
trace: 5,
},
format: format.simple(),
transports: [
new transports.Console({
json: false,
level: 'trace',
formatter: (options) => {
console.log(options);
return "formatter";
},
}),
new transports.File({
filename: 'combined.log',
json: false,
level: 'trace',
formatter: function(options) {
console.log(options);
return "formatter";
}
}),
]
});
但永远不会调用formatter
函数,我只是在控制台和文件中看到默认的JSON输出
甚至可以为不同的传输分离格式化器吗?
我正在使用 Winston 3.0.0-rc5 。
答案 0 :(得分:0)
这对我有用。我的示例的核心是基于他们的api页面:https://www.npmjs.com/package/winston。
const winston = require('winston');
var config = winston.config;
var logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)({
formatter: function(options) {
console.log(options);
return "console!";
}
}),
new (winston.transports.File)({
json: false, //THIS is important for type "File"
filename: 'test.log',
formatter: function(options) {
console.log(options);
return "log file!";
}
})
]
});
logger.info('nono');