rotate not nodejs node logger example daily node.js winston

node.js - not - winston-daily-rotate-file



Winston no imprime en la consola (3)

Me di cuenta de la respuesta (la documentación es incorrecta). Si usa el constructor y agrega transportes manualmente, puede establecer opciones, tanto para Winston como para transportes individuales. Ciertas opciones deben agregarse a Winston directamente, mientras que otras deben agregarse al transporte.

P.ej:

var winston = require(''winston''); var logger = new (winston.Logger)({ levels: { trace: 0, input: 1, verbose: 2, prompt: 3, debug: 4, info: 5, data: 6, help: 7, warn: 8, error: 9 }, colors: { trace: ''magenta'', input: ''grey'', verbose: ''cyan'', prompt: ''grey'', debug: ''blue'', info: ''green'', data: ''grey'', help: ''cyan'', warn: ''yellow'', error: ''red'' } }); logger.add(winston.transports.Console, { level: ''trace'', prettyPrint: true, colorize: true, silent: false, timestamp: false }); logger.add(winston.transports.File, { prettyPrint: false, level: ''info'', silent: false, colorize: true, timestamp: true, filename: ''./nKindler.log'', maxsize: 40000, maxFiles: 10, json: false });

Estoy tratando de hacer que Winston imprima bastante en la consola, así que pegué esto en un archivo y lo ejecuté con el nodo:

var winston = require(''winston''); winston.cli(); winston.data({ a: "test", of: "many", properties: { like: "this" } }); winston.data(''data'', { a: "test", of: "many", properties: { like: "this" } });

La terminal devuelve los siguientes mensajes (no exactamente bonitos):

data: a=test, of=many, like=this data: data a=test, of=many, like=this

Estoy siguiendo las instrucciones en el archivo Léame de Winston ("Uso de winston en una herramienta CLI"). ¿Estoy malinterpretando algo? ¿Falta un ajuste en alguna parte?


Si está utilizando [email protected], la respuesta aceptada no funcionará. Intenta lo siguiente:

const winston = require("winston"); let date = new Date().toISOString(); const logFormat = winston.format.printf(function(info) { return `${date}-${info.level}: ${JSON.stringify(info.message, null, 4)}/n`; }); const logger = new winston.createLogger({ transports: [ new winston.transports.Console({ level: level, format: winston.format.combine(winston.format.colorize(), logFormat) }) ] });

Los registros tendrán el siguiente formato:

Es de color por cierto

2018-03-01T19:49:54.042Z-info: "----- Customer Details ------" 2018-03-01T19:49:54.042Z-info: [ { "A": 1, "B": 2 } ]


Tomé la respuesta de @ partycoder y la recorté para usar solo los niveles de registro predeterminados que vienen con Winston. Tampoco invierte el orden de los errores. 0 = prioridad más alta.

winston.addColors({ silly: ''magenta'', debug: ''blue'', verbose: ''cyan'', info: ''green'', warn: ''yellow'', error: ''red'' }); winston.remove(winston.transports.Console); winston.add(winston.transports.Console, { level: process.env.LOG_LEVEL, prettyPrint: true, colorize: true, silent: false, timestamp: false });