2015-01-08 20 views
7

Io uso Winston per la registrazione:Winston Registra su file non funziona

var winston = require('winston'); 
var logger = new(winston.Logger)({ 
    transports: [ 
     new(winston.transports.Console)(), 
     new(winston.transports.File)({filename: '/var/log/logF.log'}) 
    ] 
}); 

e scrivo a questo registro:

logger.log("File: " + path + " was found"); 

Per qualche ragione, il file /var/log/logF.log non viene aggiornato, e anche lo standard output non viene mostrato nel log.

Come si utilizza in modo che il registro venga scritto in "/var/log/logF.log"?

risposta

13

Non è stato specificato un "livello" di registro e "registro" non è purtroppo un livello predefinito. Prova:

logger.log("info", "File: was found"); 
// or 
logger.info("File: was found"); 
+0

Come ho impostato il log sul livello '.log'? –

+0

@OrSmith Penso che non ci sia un livello di "log". Devi usare [uno di questi predefiniti.] (Https://github.com/flatiron/winston#logging-levels) Oppure potresti [definire il tuo] (https://github.com/flatiron/ winston # using-custom-logging-levels) ma penso che non sia possibile definire manualmente il livello per essere "log", dato che rovinerà la funzione predefinita '.log()' e non funzionerà. – laggingreflex

+0

Non ne sono completamente sicuro al 100%, ricordo solo di aver trovato questo problema esatto e di essere frustrato e di finire per non sovrascrivere il livello di "log". Sentiti libero di sperimentare, ma mi piacerebbe solo usare "info" o qualche altro livello. Il livello di registro – laggingreflex

1

Dopo aver provato e fatto test severals con severals avanzati meccanismi di registrazione (. Incluso Winston, Bunyan, log4js), sembra che logger non sono in grado di scrivere in un file se si fa un uscita pulita process.exit(0). Rimuovere l'uscita pulita risolve il problema per me.