Having a handle on your code's errors is important. Thousands, if not millions, of exceptions are thrown every day in production code without anyone knowing. These errors might be affecting the bottom line, or they could be negligible - either way, it's important to know that they exist, how often they are occurring, and what parts of the app are affected.
Are you looking for a comprehensive tool that handles logging, reporting, grouping, and notifications for exceptions in your ASP.NET, Web API, WebForms, WPF, Console, MVC, or NancyFX app? Exceptionless does all that, and more. Lets take a look.
Exceptionless is for developers and dev teams that want to have enhanced visibility of errors, track down bugs faster, tighten up code, and produce a better overall product for the end user.
Back in February, we went open source, allowing developers that have the resources and infrastructure to host Exceptionless for free. Since then, we've had several contributors to the project and more than 50 forks. Pretty exciting stuff!
We offer extremely reasonable hosting services for those that would prefer we handle that side of things. The single user, single project hosting account is free, then the small team account starts at $15 per month. Pricing scales from there. Check out the Pricing Plans page for full pricing details and frequently asked questions.
Having a tool like Exceptionless to report and log your software's errors is great, but many of our clients experience thousands of instances of each error over various lengths of time, which can become overwhelming quickly.
We couldn't just leave them with a huge list of individual error occurrences to drudge through, so we went through several different potential options until we devised the best way to group them.
Since we use Exceptionless to report and track down our own bugs, it was easy to put ourselves in our own shoes and think about what would allow us to drill down and fix errors quickly.
With that mindset, we decided that there were two important error details that should be used for grouping.
Where the error occurred
We felt that, first and foremost, we wanted to know where the error was occurring. Even though there is a possibility it might be occurring in multiple locations, we felt that each location represented its own importance in our grouping scheme.
Type of error
The type of error is also very important, and we felt that when you combine type with location, you get a set of errors that holds enough significant explicit data to be recognized as a group.
When we group app errors by location and type, it allows us to report error instance counts, first occurrences, frequency of occurrence, and most recent occurrence on the dashboard.
Error Group Details
This seemingly basic grouping forms the basis for the different Exceptionless dashboard tabs and pages, thus becoming a major cornerstone for the platform. Click into a group, and you see the title, exception type, and location, along with a graph of occurrences and the most recent occurrences.
From there, you can drill down into each occurrence and scrutinize all of the error's details.
As our user base continues to expand, the first priority is to continue providing the best service possible. Azure allows us to guarantee scalability, and has already proven to be much faster and more responsive. We're ready for whatever you can throw at us.
Developing infrastructure takes time, and we would rather be developing the code behind Exceptionless. The move to Azure allows us to do just that, taking a lot off our plate in terms of hosting. It's pretty awesome.
In the future, we would like to become an Azure partner and be listed as one of the approved store add-ons. We're not there yet, because we've got to go through the application process, etc, etc, but it's in the works!
"Azure is an open and flexible cloud platform that enables you to quickly build, deploy and manage applications across a global network of Microsoft-managed datacenters. You can build applications using any language, tool or framework. And you can integrate your public cloud applications with your existing IT environment." - Microsoft Azure
We are happy with the move and think it means great things for the future of Exceptionless. We hope our users appreciate the speed and responsiveness, and can see the improvements in service.
When an error occurs in your app, you need to know the critical details, fast, so you can drill down and fix it. We get it - we're developers too - that's why we built Exceptionless.
The trick was organizing the data so it didn't overwhelm our users, while still providing all the important stuff so developers wouldn't have to spend extra time tracking down versions, requesting stack traces, or pulling teeth to get environment information.
Lets take a look at the default information included with every error. We say default because you can easily add your own information with custom objects.
We have done our best to include all the important information in an organized, easy to read, intuitive interface. Think we're missing something? Think we can organize it differently? Let us know! We love feedback.
Exceptionless 1.4 brings with it both server and client changes, a new client integration, some minor updates, and lots of bug fixes. Check out the changelog items below, and let us know if you have any questions.
We want to extend our thanks again to the developers that have worked on the project since we went open source a few weeks ago. See their contributions below, along with links to their GitHub profiles.
Just over six months ago, we launched Exceptionless with a mission to impact the coding community in a positive way. The goal was, and still is, to help developers find, track, and squash errors, ultimately creating better code for users.
A few days ago we officially hit 1000 accounts, and as of today Exceptionless has reported 8,562,499 errors! We couldn't be more excited!
Sure, we're busier than ever now, answering emails, conversing with open source contributors on new features, and working on new features ourselves, but seeing something grow this quickly, that we've put so much work into, leaves us with little room to complain. The only real thing we can do is say thank you.
"Nancy is a lightweight, low-ceremony, framework for building HTTP based services on .Net and Mono. The goal of the framework is to stay out of the way as much as possible and provide a super-duper-happy-path to all interactions."
Built from the ground up (not simply a DSL on another framework)
Removed underlying framework limitations and feature hacks
Removed need to reference assemblies you don't need, keeping things light
Ability to run anywhere, including ASP.NET/IIS, WCF, self hosted, and any OWIN out of the box
Super lightweight action declarations for GET, HEAD, PUT, POST, DELETE, OPTIONS and PATCH requests
View engine integration for Spark, Razor, dotLiquid, SuperSimpleViewEngine, and others
Request path matching with advanced parameter capabilities, plus the ability to replace the path matching strategy with custom implementations for your needs
Easy response syntax, enabling you to return things like int, string, HttpStatusCode and Action elements without having to explicitly cast or wrap your response - you just return it and Nancy will do the work for you
A powerful, light-weight, testing framework to help you verify the behavior of your application
Too many apps are throwing too many errors out there, resulting in confused users, lost business, and endless frustration.
We believe Exceptionless can help the development community become more in-tune with their code by making those errors more transparent, trackable, and squashable. More importantly, we want to support developers building and shipping better code for their users.
You'll find instructions on getting started there, including setting up your hosting environment if you want to host things yourself. If you would rather host with us, we offer easy and affordable plans.
If you have a feature request or issue, let us know on the issue tracker. We are 100% committed to supporting the project.
In short, we want to see what the community can do with our baby, which we consider a great development tool. The open source movement has provided innovation throughout the industry, and we cannot tell you how excited we are to be a part of it.
We hope you will take it, add to it, suggest great new features, and report bugs, but most of all we hope you will use it to build better apps for the world.
The Exceptionless Team will continue to work on a road map of features and improvements, all while providing support to developers that want to contribute.
Exceptionless 1.3 brings with it both server and client changes, including open sourcing the project (which we're super excited about!), some minor updates, and a few bug fixes. Check out the changelog items below, and let us know if you have any questions.