2013-12-09 14 views
19

Kann jemand ein Beispiel für die Konfiguration von sails.js zur Protokollierung in einer Datei bereitstellen?Segel Protokollierung in Datei

Es scheint, als sollte es einfach sein, aber ich habe Probleme, Beispiele online zu finden.

Ich sehe Änderungen in den Dateien config/log.js oder config/sockets.js.

Antwort

30

Nach the source code, für v0.9.x, Sie müssen nur die filePath in Ihrem config/log.js setzen:

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

Dank ... ich diese kurz herausgefunden, nachdem diese Frage zu veröffentlichen und den Quellcode zu lesen und . Nicht allzu gut dokumentiert, leider. Ich habe vergessen, diese Frage zu aktualisieren. Markierung als korrekt! :) Vielen Dank! – rcheuk

+0

Danke für die Verknüpfung mit der entsprechenden Datei im Quellcode! –

+0

Gibt es eine Möglichkeit, auf meine Logger-Dateien in config/log.js zuzugreifen? – Mahahari

18

Logging in eine Datei nicht aus der Box funktioniert. Sie müssen Funktionen in zwei Ebenen tiefer Bibliotheken aufrufen. Siehe die Winston-Dokumentation.

erste winston installieren wie folgt:

$ npm install winston 

Dann config/log.js einzustellen, wie zu sehen

folgt
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

Ich werde das als die neue richtige Antwort wieder akzeptieren, wenn genug Leute es upvote. Ich benutze keine aktiven Segel, daher kann ich zu diesem Zeitpunkt nicht dafür bürgen. – rcheuk

+0

Diese Antwort funktioniert gut auf meine Anwendung –

+0

Ich musste Winston WinMon installieren, damit dies funktioniert. Darüber hinaus sehe ich keine Verbindungen protokolliert (aber das könnte ein anderes Thema sein) –

Verwandte Themen