2013-12-09 3 views
19

Qualcuno può fornire un esempio di come configurare sails.js per accedere a un file?sails logging to file

Sembra che dovrebbe essere semplice, ma ho difficoltà a trovare esempi online.

Sto osservando le modifiche nei file config/log.js o config/sockets.js.

risposta

30

Secondo the source code, per v0.9.x, basta impostare la filePath nel config/log.js:

module.exports = { 
    log: { 
    level: 'info', 
    filePath: 'application.log' 
    } 
}; 
+1

Grazie ... ho capito questo breve dopo la pubblicazione questa domanda e la lettura del codice sorgente, nonché . Purtroppo non documentato troppo bene. Hai dimenticato di aggiornare questa domanda però. Contrassegnare come corretto! :) Grazie! – rcheuk

+0

Grazie per il collegamento al file pertinente nel codice sorgente! –

+0

C'è un modo per accedere ai miei file logger in config/log.js? – Mahahari

18

registrazione in un file non funziona out of the box. È necessario richiamare la funzionalità nelle librerie a due livelli. Vedi la documentazione per winston.

prima installare Winston in questo modo:

$ npm install winston 

Poi regolare config/log.js a guardare come segue

var winston = require('winston'); 

/*see the documentation for Winston: https://github.com/flatiron/winston */ 
var logger = new(winston.Logger)({ 
    transports: [ 
    new (winston.transports.Console)({}), 
    new (winston.transports.File)({ 
     filename: 'logfile.log', 
     level: 'verbose', 
     json: false, 
     colorize: false 
    }) 
    ] 
}); 

module.exports.log = { 
    /*************************************************************************** 
    *                   * 
    * Valid `level` configs: i.e. the minimum log level to capture with  * 
    * sails.log.*()               * 
    *                   * 
    * The order of precedence for log levels from lowest to highest is:  * 
    * silly, verbose, info, debug, warn, error         * 
    *                   * 
    * You may also set the level to "silent" to suppress all logs.    * 
    *                   * 
    ***************************************************************************/ 

    level: 'silly', 
    colorize: false, 
    custom: logger 
}; 
+0

Lo accetterò di nuovo come la nuova risposta corretta se un numero sufficiente di persone lo invaliderà. Non sto usando attivamente le vele, quindi non posso garantire per questo in questo momento. – rcheuk

+0

Questa risposta funziona bene sulla mia applicazione –

+0

Avevo bisogno di installare npm winston per far funzionare tutto questo. Inoltre, non vedo alcuna connessione che viene registrata (ma potrebbe essere un altro argomento) –