【问题标题】:Sails.js log transport depend on environmentSails.js 日志传输依赖于环境
【发布时间】:2015-05-20 15:19:09
【问题描述】:

我有一个 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 等配置文件中不可用。那么在这种情况下如何根据环境使用自定义日志传输呢?

【问题讨论】:

  • 在它周围包裹一个函数,这样你就可以从有它的地方传入配置。 var logger=require("log").log("dev"),它应该返回一个函数,你过去没有额外的尾随paren调用得到的那个

标签: javascript node.js logging sails.js logentries


【解决方案1】:

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

【讨论】:

【解决方案2】:

最后看起来正确的不是直接修改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
  }
}

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

【讨论】:

    猜你喜欢
    • 2017-04-07
    • 2016-06-14
    • 2023-02-16
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    相关资源
    最近更新 更多