2013-08-27 10 views
6

Come si può dire a Winston di registrare più livelli su un singolo trasporto? Ad esempio, se si desidera registrare entrambi gli elementi di livello info e error nella console, come si compirebbe questo? Specificare info non registra tutti i livelli che sono a livello di informazioni e più critico, registra solo info. Passare una serie di livelli alla proprietà level non fa nulla.Come si aggiungono più livelli a un singolo trasporto in Winston?

winston.add(winston.transports.Console, { 
    colorize: true, 
    level: 'info' 
}); 

o

winston.add(winstonMongo, { 
    safe: false, 
    db: 'logs', 
    collection: 'api', 
    level: 'info' 
}); 
+0

Il livello del registro non aumenta in modo incrementale? Se registri il debug, non include le informazioni? –

+0

Si è verificato un problema nel mio codice che impedisce il verificarsi della registrazione. Il livello "informazioni" include tutti i livelli più livelli. –

+0

Sembra che ci sia un errore nel codice syslog-config.js per l'oggetto livelli. Sono ordinati al contrario con "emerge" a 0 e "debug" a 7. –

risposta

5

specificando il livello info non includere tutti i livelli che sono più gravi (ad esempio: warn, error, debug). Allo stesso modo, la specifica di warn include il livello , più il livello più grave error.

+0

Prendete il seguente esempio: logger.info ('alcune informazioni'); logger.error ('qualche errore'); logger.myCustomLevel ('some customization'); Il trasporto della console viene aggiunto al registratore con il livello predefinito (informazioni): Suppongo che ogni registro debba essere scritto nella console, giusto? In caso negativo, come posso registrare livelli diversi all'interno di un singolo trasporto? Puoi pubblicare un esempio funzionante con Console, File o Qualunque trasporto per favore? – Wilk

1

Per i posteri, ho incluso uno snippet di codice dal codice sorgente Winston che dettaglia i livelli di registro predefiniti. Come menzionato in altre risposte, specificando un livello di registro inferiore registreranno i livelli sopra, ad es. specificando silly si registreranno tutti gli altri livelli mentre specificando debug verranno registrati tutti tranne silly.

npmConfig.levels = { 
    silly: 0, 
    debug: 1, 
    verbose: 2, 
    info: 3, 
    warn: 4, 
    error: 5 
}; 

Secondo il Winston readme questo è lo stile "NPM", ma il NPM document collega a ha diversi livelli di log.

Problemi correlati