2013-12-09 91 views
19

有人可以提供一個如何配置sails.js登錄到文件的例子嗎?記錄到文件

它看起來應該很簡單,但我無法在線查找示例。

我正在查看config/log.js或config/sockets.js文件中的更改。

回答

30

the source code爲v0.9.x,你只需要設置filePathconfig/log.js

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

謝謝...我想通了這一點發布了這個問題,並閱讀源代碼,以及不久後。不幸的是,記錄不完善。忘了更新這個問題,但。標記爲正確! :) 謝謝! – rcheuk

+0

感謝您鏈接到源代碼中的相關文件! –

+0

有什麼辦法可以在config/log.js中訪問我的記錄器文件嗎? – Mahahari

18

記錄到文件不起作用開箱即用。您需要在兩個層次上調用庫中的功能。請參閱winston的文檔。

第一,像這樣安裝溫斯頓:

$ npm install winston 

然後調整config/log.js看如下

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

如果有足夠的人喜歡它,我會重新接受這個新的正確答案。我沒有積極使用帆,所以我現在不能擔保。 – rcheuk

+0

這個答案適用於我的應用程序 –

+0

我需要npm安裝winston才能正常工作。此外,我沒有看到任何連接被記錄(但可能是另一個主題) –