Using multiple logs for different environments

This post has been adapted as part of our official documentation. To read the most updated version, please check out Use multiple logs for different environments

We bet that you use at least two environments for hosting you website: localhost and a production environment. You probably need to log website errors all your environments, but you don’t want to mix errors from different environments in the same error log. Lucky for you, Microsoft provides a great way of differentiating configuration for different environments called Web Config transformation.

Start by creating two new logs at the website called something like “My website” and “My website development”. The naming isn’t really important, so pick something saying.

In your project install the NuGet package:


During the installation, NuGet will ask you for your log id. In this dialog input the log id from the log named “My website development”. The default configuration is used when running your website locally. When installed open the web.release.config file and add the following code:

<elmah xdt:Transform="Replace">
  <errorLog type="Elmah.Io.ErrorLog, Elmah.Io" LogId="INSERT_HERE" />
  <security allowRemoteAccess="false" />

Replace the INSERT_HERE value with the log id named “My website”. That’s it! You can now build and deploy your website using different configurations. When nothing is changed, Visual Studio will build your website using the Debug configuration. This configuration looks for the ELMAH code in the web.debug.config file. We didn’t add any ELMAH configuration to this file, why the default values from web.config are used. When selecting the Release configuration, Web. Config transformations will replace the default values in web.config with the new ELMAH configuration from web.release.config.

To avoid spending numerous hours of debugging, remember that Web Config transformations are only run on deploy and not on build. In other words deploy your website using Visual Studio, MSBuild or third for the transformations to replace the right ELMAH config.

This post was brought to you by the team. is the best error management system for .NET web applications. We monitor your website, alert you when errors start happening and help you fix errors fast.

Monitor your website