禁用Express js中的所有控制台消息

时间:2019-03-14 03:29:08

标签: node.js express

我在Express js应用程序中使用了许多console.log()。如何使用npm脚本禁用所有这些console.log消息? 例如:“ nodemon index.js DEBUG = false”

2 个答案:

答案 0 :(得分:1)

在开发中通常使用console.log()打印日志消息到终端。 但是当目标是终端或文件时,这些功能是同步的,因此它们不适合生产

使用debug之类的特殊调试模块代替使用console.log()

但是,简单的方法是将这段代码放在app.listen()的回调函数中:

// server.js

app.listen(3000, () => {

  if(!process.env.DEBUG){
     console.log = function(){}
  }

 // when DEBUG = false all console.log will not log
  console.log('server started')
});


有关更多Express.js best practices: performance and reliability的信息,请查看其官方文档。

答案 1 :(得分:0)

您可以使用此插件删除所有console。*调用。

npm install babel-plugin-transform-remove-console --save

添加具有这些配置的.babelrc文件

{
  "env": {
    "production": {
      "plugins": ["transform-remove-console"]
    }
  }
}