如何仅在生产环境启用Bugsnag错误上报?
配置Bugsnag仅上报生产环境错误
核心思路是根据当前运行环境的标识,控制Bugsnag的上报开关,只在生产环境开启错误上报。以下是主流技术栈的具体配置方式:
JavaScript/React 项目
在初始化Bugsnag时,通过环境变量判断是否启用:import Bugsnag from '@bugsnag/js' import BugsnagReact from '@bugsnag/plugin-react' // 仅在生产环境初始化Bugsnag if (process.env.NODE_ENV === 'production') { Bugsnag.start({ apiKey: '你的API密钥', plugins: [new BugsnagReact()], enabled: true }) }或者如果已经全局初始化,也可以直接通过
enabled参数控制:Bugsnag.start({ apiKey: '你的API密钥', plugins: [new BugsnagReact()], enabled: process.env.NODE_ENV === 'production' })Node.js 项目
同样基于环境变量判断,仅在生产环境启动Bugsnag:const bugsnag = require('@bugsnag/node') if (process.env.NODE_ENV === 'production') { bugsnag.start({ apiKey: '你的API密钥' }) }Ruby on Rails 项目
在config/initializers/bugsnag.rb中配置:Bugsnag.configure do |config| config.api_key = '你的API密钥' # 仅在生产环境启用上报 config.enabled = Rails.env.production? endAndroid 项目
根据BuildConfig的DEBUG标识关闭开发环境的自动上报:import com.bugsnag.android.Bugsnag; public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); if (!BuildConfig.DEBUG) { Bugsnag.start(this); } else { // 开发环境禁用自动上报 Bugsnag.setAutoCaptureEnabled(false); } } }iOS 项目
在AppDelegate中利用DEBUG宏控制:import Bugsnag @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { #if DEBUG Bugsnag.configuration().autoCaptureEnabled = false #else Bugsnag.start(withApiKey: "你的API密钥") #endif return true } }
核心原则就是:通过环境标识(环境变量、框架自带的环境判断工具),让Bugsnag仅在生产环境下初始化或开启自动上报功能,从而避免开发环境的错误干扰。
内容的提问来源于stack exchange,提问作者Prerna More
相关产品推荐
相关产品推荐

