Archivo sin formato en Winston

Quiero registrar solo los datos y no el nivel de registro, la marca de tiempo, etc. en un archivo.

var logger = new (winston.Logger)({ transports: [ new (winston.transports.File)({ filename: '/tmp/data.log', json : false, timestamp : function() { return ''; } }) ] }); logger.log('info', "a") 

Elimina la marca de tiempo de la línea pero el nivel de registro todavía aparece. Actualmente, el archivo contiene “info: a”. Quiero que se registre sólo “a”. ¿Es posible especificar el formato de salida en Winston?

Desafortunadamente, ese formato está algo codificado en Winston; Puede ver su lógica en la función de log de common.js , que es utilizada por la mayoría de los transportes predeterminados.

La forma de evitar esto sería escribir su propio transporte personalizado que no se base en common.log() .

Aparte: puede proporcionar una opción timestamp: false para inhabilitar el registro de la hora en los transportes predeterminados.

Puede definir el formato de registro personalizado como este

 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.');