asp.netbugsnag

Setting Bugsnag configuration options in code


In the documentation it says that I can do the following in code to further configure my integration:

Each key provides an in code example and a config file example.

configuration.ReleaseStage = "development";

What I am trying to do is:

public static void Register(HttpConfiguration config)
{
    var configuration = Bugsnag.ConfigurationSection.Configuration.Settings;
    configuration.ReleaseStage = ConfigurationManager.AppSettings["Environment"];
    config.UseBugsnag(configuration);
}

However, the configuration properties are read-only (don't have setters).

The alternative is to add the configurations to the Web.config:

<bugsnag apiKey="your-api-key" releaseStage="development">

The problem is that I am reading my environment from the AppSettings and therefore cannot do it this way.

Is it possible to do the configuration in code and if so, how?

UPDATE: Since posting the question I have found the issue on GitHub.


Solution

  • From the GitHub issue it seems as if this isn't possible so I used the work around suggested by one of the project's contributors.

    The only work around I can suggest right now is to use the core Bugsnag nuget package...

    I removed all the 'old' code, uninstalled all the NuGet packages except for the base Bugsnag and added the following code to the OnException override method where I had been logging exceptions up until now.

    var configuration = new Configuration("API_KEY")
    {
        ReleaseStage = myReleaseStage
    };
    var client = new Bugsnag.Client(configuration);
    client.Notify(new System.Exception("Error!"));
    

    This worked and errors are now logged along with the environment in which they occurred. My next step will be to refactor this work around so that client is available globally but for now this solves my in code problem.