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 winston@3.0.0-rc0, 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 });