uniapp如何关闭log日志打印的方法

在uniapp开发中,如何关闭控制台的log日志打印?调试时发现console.log输出太多影响性能,希望在生产环境彻底禁用这些日志,请问有什么配置方法或代码方案可以实现?

2 回复

在manifest.json中配置"debug": false即可关闭日志打印。也可以在代码中使用uni.setEnableDebug({enableDebug: false})动态关闭。


在 UniApp 中,可以通过以下方法关闭控制台的日志打印,以提升生产环境的性能和减少冗余信息:

  1. manifest.json 中配置
    在 HBuilderX 中打开 manifest.json 文件,找到源码视图,在 "app-plus""mp-weixin"(针对微信小程序)等平台配置下添加 "console": false
    示例:

    {
      "app-plus": {
        "console": false
      },
      "mp-weixin": {
        "console": false
      }
    }
    

    这会在打包时禁用指定平台的 console 日志输出。

  2. 使用条件编译
    在开发阶段,可以通过条件编译保留日志,生产环境自动关闭。
    示例代码:

    // 开发环境下打印日志,生产环境不打印
    #ifdef DEBUG
    console.log('调试信息');
    #endif
    

    在 HBuilderX 中,生产构建时会自动移除 DEBUG 条件下的代码。

  3. 全局重写 console 方法(不推荐,但可行):
    main.js 或应用入口文件中,通过判断环境变量覆盖 console 方法。
    示例:

    if (process.env.NODE_ENV === 'production') {
      console.log = function() {};
      console.warn = function() {};
      console.error = function() {};
    }
    

    注意:这种方法可能影响部分调试功能,且 UniApp 的多平台兼容性需测试。

注意事项

  • 修改 manifest.json 后需重新打包生效。
  • 测试时确保配置正确,避免影响错误排查。
  • 微信小程序等平台可能有自己的日志管理设置,需单独配置。

以上方法可有效关闭日志,推荐使用 manifest.json 配置,简单且官方支持。

回到顶部