Sails.js 日志传输取决于环境

Sails.js log transport depend on environment

我有一个 Sails.js 项目,我想为事件记录添加 LogEntries 支持。但是我只想在某些环境中使用 LogEntries。

例如,在开发中我不想让日志充满开发垃圾。

// config/log.js

var logentries = require('le_node');
var log = (sails.config.environment === 'development') ? sails.log : logentries.logger({
  token: 'YOUR_TOKEN'
});

module.exports.log = {
  log: {
    custom: log
  }
}

但是我得到一个错误,即 sails 没有定义。这是因为 sails 对象在 config/log.js 等配置文件中不可用。那么在这种情况下如何根据环境使用自定义日志传输呢?

在所有配置模块中,我发现你不能只写sails.config.someModule。只需使用典型的 var someModule = require(./someModule)。这样就容易多了。

最后看来正确的不是直接修改config/log.js文件而是修改环境配置文件:

// config/env/production.js

var logentries = require('le_node');
var log = logentries.logger({
  token: 'YOUR_TOKEN'
});

module.exports.log = {
  log: {
    custom: log
  }
}

这样只有生产环境才会有自定义日志记录。