elmah.io NuGet packages revisited
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.
Elmah.Io.Client
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 and Elmah.Io
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.AspNet
and Elmah.Io
from MVC and Web API, we recommend to use the specialized packages, since they provide better solutions for each framework.
Elmah.Io.Mvc
Built on top of the same code base as Elmah.Io.AspNet
/Elmah.Io
, Elmah.Io.Mvc
additionally depends on Elmah.MVC
. 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.
Elmah.Io.WebApi
Same story as Elmah.Io.Mvc
just for ASP.NET Web API.
Elmah.Io.AspNetCore
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.
Elmah.Io.Extensions.Logging
Integration for Microsoft.Extensions.Logging.
Elmah.Io.Log4Net
Integration for log4net.
Elmah.Io.NLog
Integration for NLog.
Serilog.Sinks.ElmahIo
Integration for Serilog.
Logary.Targets.Elmah.Io
Integration for Logary
Elmah.Io.Trace
Integration for .NET Tracing
Elmah.Io.Umbraco
Integration for Umbraco
Where is elmah.io.core
?
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.