使用Winston和Morgan登录Sails

时间:2015-06-30 21:59:24

标签: sails.js winston

在Sails的config / log.js文件中,这是我的代码:

var express = require("express");
var app = express();
var winston = require('winston');


var logger = new(winston.Logger)({
  transports: [
    new(winston.transports.File)({
      level: 'info',
      timestamp: true,
      filename: './logFile.log',
      handleExceptions: true,
      json: true,
      colorize: false
    }),
    new(winston.transports.Console)({
      level: 'debug',
      timestamp: true,
      handleExceptions: true,
      json: false,
      colorize: true
    })
  ],
  exitOnError: false
});

logger.stream = {
  write: function (message, encoding) {
    logger.verbose(message);
  }
};

app.use(require('morgan')("combined", {"stream": logger.stream}));

module.exports.log = {

  level: 'info',
  custom: logger

};

我正在尝试使用morgan和winston来记录所有HTTP请求。我在网上找到了一个说这样做的例子,这对我来说很有意义,但由于某些原因,我的日志文件没有显示任何请求。温斯顿部分很好,因为它记录了它应该是的所有信息,但我不知道如何让摩根与温斯顿合作。有什么建议或意见吗?谢谢!

1 个答案:

答案 0 :(得分:3)

Morgan是一个快速中间件,所以它应该作为自定义中间件加载到Sails。 为此,请将以下内容添加到config / http.js:

customMiddleware: function(app) {
  app.use(require('morgan')("combined", {"stream": sails.config.log.custom.stream}));
}