elmah.io NuGet packages revisited
Thomas Ardal, October 16, 2017
Back in January, we published the post The elmah.io NuGet package landscape. Since then, most of our v3 client have matured into stable versions (more about the new versions and how to upgrade in a future post). When building the new v3 packages, we have used the jump in major version number to go back and fix some of the issues that we have seen on the v2 packages. This post is an overview of all integration packages available as of today.
Let's start by looking at a diagram:
If you remember the old diagram, you will see that package dependency have been heavily simplified. The idea with the new version of the packages is, that each package is as self contained as possible. Of course we don't want to include the source code for
Elmah.Io.Client in all packages, but the time of shared packages named something with core have passed.
Like previously, all packages depend on
Elmah.Io.Client to call the elmah.io API. Since API keys are a required part of our new API, clients of
Elmah.Io.Client needs to provide an API key as well.
Elmah.Io.Client is built on netstandard 1.1, which means that it can be used from .NET 4.5/.NET Core 1.0 and forward.
Elmah.Io.AspNet is our package for ASP.NET sites or any web framework built on top of ASP.NET (like MVC and Web API). For easy installation and backwards compatability, there's an alias package simply named
Elmah.Io. While you can use both
Elmah.Io from MVC and Web API, we recommend to use the specialized packages, since they provide better solutions for each framework.
Built on top of the same code base as
Elmah.Io.Mvc additionally depends on
Elmah.MVC is a great addition for ELMAH when running ASP.NET MVC. Easier configuration is among some of the benefits of using this package.
Same story as
Elmah.Io.Mvc just for ASP.NET Web API.
Elmah.Io.AspNetCore is out implementation for ASP.NET Core. Using middleware, all uncaught exceptions in your ASP.NET Core application, are send to elmah.io.
Integration for Microsoft.Extensions.Logging.
Integration for log4net.
Integration for NLog.
Integration for Serilog.
Integration for Logary
Integration for .NET Tracing
Integration for Umbraco
Some of you may remember the
elmah.io.core package. In v2, this package contained our integration with ELMAH (the open source project) and all integrations depending on ELMAH included this package. In v3,
elmah.io.core has been removed for several reasons:
- When we originally named the package, .NET Core didn't exist. The term core were meant as a "core part of elmah.io". But since we now have overlap between the two terms, we have decided to remove the package to avoid confusions.
- The dependency graph had become too complext. 4 layers of package dependency simply caused more problems than it solved.
This post was brought to you by the elmah.io team. elmah.io 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.