使用React进行调试日志记录

8
我希望能够在开发时插入调试日志语句,并且可以随时打开或关闭;然后在生产环境中完全删除这些日志。
为了实现在生产环境中去除日志信息,我发现 React 项目本身使用了这种惯用法:
if ("production" !== process.env.NODE_ENV) {
    // warn or log or whatever
}

通过将模块的 process.env.NODE_ENV 设置为 "production",然后通过像 UglifyJS 这样的死代码消除器运行捆绑包,日志将被消除为不可到达状态。
这很好,但是否有更灵活的解决方案?我想要像 debug() Node 模块这样的东西,或者更强大一些的,比如 Java 日志 API。
我想知道为什么找不到一个将 ("production" !== process.env.NODE_ENV) 方法与 debug() 结合起来的模块。
2个回答

11
var debug = function(msg) {
    if ("production" !== process.env.NODE_ENV) console.log(msg);
}
module.exports = debug;

使用方法:

var debug = require("debug");
debug("some logs");

抱歉,我忍不住要说一句。但是实际上,有很多JS日志框架可供选择(尽管我认为上面的解决方案已经足够简单,不需要过度复杂化)。


1
哈哈,是的,这就是我现在正在做的事情!我只是在想,因为我在其他地方没有找到它的使用。也许有更好的东西我没有看到。 - Dmitry Minkovsky

0
来自Java世界的我很高兴看到有一个名为'log4javascript'的项目。

http://log4javascript.org/

它有一些很酷的东西,包括一个带有一些功能的日志控制台...

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接