在Winston的纯文件日志logging
我只想logging数据,而不是日志级别,时间戳记等文件。
var logger = new (winston.Logger)({ transports: [ new (winston.transports.File)({ filename: '/tmp/data.log', json : false, timestamp : function() { return ''; } }) ] }); logger.log('info', "a")
它从行中删除时间戳,但日志级别仍然出现。 目前,文件包含“info:a”。 我希望它只logging“一个”。 有没有可能在winston中指定输出格式?
不幸的是,这种格式是硬编码到温斯顿。 你可以在common.js
的log
函数中看到它的逻辑,这是大多数默认传输所使用的。
解决这个问题的方法是编写自己的不依赖于common.log()
的自定义传输。
另外:您可以只提供一个timestamp: false
选项来禁用默认传输中的时间戳logging。
您可以像这样定义自定义日志格式
var logger = new (winston.Logger)({ transports: [ new (winston.transports.Console)({ timestamp: function() { return Date.now(); }, formatter: function(options) { // Return string will be passed to logger. return options.timestamp() +' '+ options.level.toUpperCase() +' '+ (options.message ? options.message : '') + (options.meta && Object.keys(options.meta).length ? '\n\t'+ JSON.stringify(options.meta) : '' ); } }) ] }); logger.info('Data to log.');