节点日志记录和错误处理

时间:2015-07-18 18:46:51

标签: javascript node.js express

我已经使用express创建了Node js,目前我使用console.log来记录消息而morgan用于表达...对于生产使用建议的方法来进行错误处理和日志记录,有推荐的模块使用? 示例非常有用!

我尝试使用以下

module.exports = function () {
    var logger = new winston.Logger({
        levels: {
            info: 1
        },
        transports: [
            new (winston.transports.File)({
                level: 'info',
                filename: path.join(process.cwd(), '/logs/log.json'),
            })
        ]
    });
}

1 个答案:

答案 0 :(得分:1)

我过去曾经非常有效地使用过winston。在下面的摘录中,我们创建了一个名为info的自定义日志级别,以便我们可以调用logger.info来记录消息。我相信在winston上定义了许多默认级别,这些级别已有详细记录。

第二部分是定义一个传输。在winston中,这本质上是一个用于日志的存储设备。您可以在阵列中定义多个传输,包括控制台日志记录,文件记录,旋转文件记录等等。这些都记录良好here。我的例子我创建了一个文件传输,其中日志文件位于应用程序根目录下的log/logs.json下。每次我现在调用logger.info('blah blah blah')时,我都会在文件中看到一个新的日志条目。

var winston = require('winston'),
  , path = require('path')

// Log to file.
var logger = new winston.Logger({
  levels: {
    info: 1
  },

  transports: [
    new (winston.transports.File)({
      level: 'info',
      filename: path.join(process.cwd(), '/log/logs.json'),
    })
  ]
});

// Write to log.
logger.info("something to log");