反应本机。一处打开/关闭控制台日志的机制

时间:2018-09-06 16:22:49

标签: reactjs debugging react-native console.log

我的代码中有很多 console.log 。 众所周知,这些日志会大大降低应用程序的运行速度,因此在开发结束时,我需要删除所有日志,但是我当然不记得所有存放日志的地方。如何使用可用于console.log的包装器,以便可以在一处打开或关闭所有控制台日志?如果我的方法不是很好,请向我建议一些库,工具,做我需要的方法...

3 个答案:

答案 0 :(得分:2)

您可以通过以下两种方式执行此操作:

if(!__DEV__) {
  console = {};
  console.log = () => {};
  console.error = () => {};
}

一种更好的方法是使用babel插件transform-remove-console 创建 .babelrc 文件,并设置babel Transpiler。

示例设置:

{
  "presets": ["react-native"],
  "env": {
    "production": {
      "plugins": ["transform-remove-console"]
    }
  }
}

来源:https://facebook.github.io/react-native/docs/performance.html#using-consolelog-statements

答案 1 :(得分:1)

使用此命令:https://github.com/babel/minify/tree/master/packages/babel-plugin-transform-remove-console

或者您可以在utils中创建一个函数,如下所示:

try:
    with absorb(errno.ENOENT): action()
    # the code here is reachable only if action() returns,
    # or if one of the suppressed/absorbed exceptions has been raised (i.e. ENOENT)
except IOError as any_other_ioerror:
    # any exception with errno != ENOENT will come here
    sophisticated_error_handling()

并在项目中的任何地方使用showLog:

export const showLog = (tag, log) => {
  console.log(tag + ' : ' + log);
};

答案 2 :(得分:0)