Even though my own code is perfect — and certainly in no need of any “error logging tool” — I’ve still wondered if there’s any good tools out there worth considering for such things. At first I thought that there’d only be a like couple of decent alternatives out there for the .NET stack, but there seems to bee fair amount interesting solutions out there, so I’ll just summarize some of the more interesting ones briefly. I’m hoping that I’ll be able to delve more deeply into one of them in a future post once I’ve had the chance to see one, or a couple of them in action.
Some of the the tools below are more targeted at performance profiling, and others more for error logging and analytics — and some contain a mixture of all of those things.
Prefix is a new free service created by Stackify that also offer a commercial solution for cloud-based error logging, as well as metrics for all kinds of applications. Anyway, Prefix is a free solution targeted at .NET applications. Prefix claims to offer features such as:
- Real-time capture of ASP.NET requests
- Tracking of SQL queries that are executed by your application
- Tracking of usage and performance of both Microsoft and third party libraries, such as Redis, MongoDB, Memcached and so on
Glimpse is a free and open source diagnostics solution for ASP.NET web applications. Glimpse is probably the most capable open source solution out there, and it certainly seems like a wonderful project. Scott Hanselman even titled a blog post “if you’re not using Glimpse with ASP.NET for profiling and debugging, you’re missing out”. Some features of Glimpse:
- Real-time diagnostics and insights
- Free and open source
- Inspects web requests as they happen
- Intercept SQL queries
- See how long it took to execute SQL queries
Glimpse website is here.
Here’s a Channel9 video labeled “A Peek at Glimpse with Anthony van der Hoorn” that might be a very good starting-point for looking into Glimpse.
This is a .NET “performance profiler” made by JetBrains, the creators of ReSharper and the new C# IDE “Project Rider” that I wrote about a while back.
- dotTrace integrates with ReSharper
- Profile to detect performance bottlenecks
- It’s integrated with Visual Studio
The dotTrace website is here.
I’ve encountered New Relic many times, and they definitely seem like a proven alternative. Some features of New Relic are:
- Analyze application performance
- Get alerts about exceptions and errors
- Support for Azure, and its available on the Azure marketplace
- Support for Umbraco
You’ll find more about New Relic’s .NET offering here.
ELMAH (Error Logging Modules and Handlers) is an application-wide error logging facility that is completely pluggable. It can be dynamically added to a running ASP.NET web application, or even all ASP.NET web applications on a machine, without any need for re-compilation or re-deployment.
ELMAH is essentially an open source project that gives you a centralized location to view your applications error logs. It has features such as:
- “Logging of nearly all unhandled exceptions.”
- Gives you a web page where you can view your (or your colleagues) exceptions
EMLAH is free, open source, and its installed locally so it seems like a very neat solution for error logging. It’s available here.
Visual Studio Application Insights
Application Insights is already tightly integrated with Visual Studio and Microsoft Azure, so if you’re already invested in that ecosystem then it might certainly be worth considering. Application Insights is an APM (Application Performance Monitoring) tool, which is what New Relic also labeled their solution. I found a brief introductory video here at Channel9. Some notable points about Application Insights are:
- Telementary data from web and mobile applications (and so on)
- Real-time monitoring of usage and performance
- Provides the ability to perform tests running in Azure
- Already tightly integrated with Visual Studio, Azure and .NET
And there’s obviously a lot more at the Application Insights website.
ASP.NET Core Logging
Microsoft’s new ASP.NET Core has built-in support for logging. Core is more customizable than previous versions, which also holds true for its logging functionality. If you’re interested in ASP.NET core logging, then consider some of the alternatives below:
- The built-in logging functionality in ASP.NET Core (see the docs here)
- elmah.io has a logging provider for Core
- Loggr also has a logging provider for .NET Core, check it out at GitHub
- NLog has a .NET Core logging provider for the NLog library
- … and there’s also a provider for .NET logging library Serilog
That’s all for this post, but I’m sure I’ll get back to things related to these topics in future blog posts as well.