Exceptional Documentation

Release Notes

This page tracks major changes included in any update starting with version 2.0.0.

Unreleased

  • Adds a net6.0 build to main packages
  • Bumps Newtonsoft.Json to version 13.0.1
  • Adds Exceptional.Settings.CreatePathIfMissing for auto-creating directories on startup (opt-in)

Version 2.2.17

  • Bumps from netcoreapp3.0 to netcoreapp3.1 (since .NET Core 3.0 is no loner supported)
  • Fixes capturing errors that happen early in ASP.NET application startup

Version 2.1.0

Version 2.0.0

Major version breaking changes
  • An upgrade guide for moving from v1 to v2 can be found here
  • Logging has changed fom static methods to .Log() and .LogNoContext() extensions on Exception
  • Errors now have a LastLogDate which is updated when duplicates are logged
  • Errors now have a Category field for use in storage (no UI changes yet)
  • Due to the additions above, new columns are necessary on data stores. Upgrade scripts for every provider above are in the V2 upgrade guide.
  • Settings have changed greatly in code and for ASP.NET Core, but existing web.config settings should load as-is. The sample applications and getting started guides above explain usage.
Features
  • ASP.NET Core 2.0+ support (StackExchange.Exceptional.AspNetCore)
  • ASP.NET (non-Core) support (StackExchange.Exceptional)
    • Getting started docs
    • Existing web.config configuration will work, code-based configuration will require changes (see below)
  • Non-ASP.NET support for both net461+ and netstandard2.0+
    • Introduces a StackExchange.Exceptional.Shared library (a NuGet dependency) for shared code in all of the above
  • Stack traces are color coded and much more readable
    • async stack traces are also much less noisy and state machine frames are collapsed
    • SourceLink URLs are supported (GitHub built-in) - if the file source is on GitHub, it will be linked in the HTML stack trace
    • All of the above is usable outside the library via ExceptionalUtils.StackTrace.HtmlPrettify()
  • Commands are generally accessible and not just SQL-centric anymore (for example logging a Redis command)
  • All methods for storage providers are now async (since more are off-box)
    • HttpModule is also async now (see getting started guides above for examples)
  • Added a .AddLogData() extension method on Exception for quickly adding key/value pairs for logging custom data
  • Supported storage providers
  • Internal changes
    • Moves to .less for styling for easier maintenance (currently requires WebCompiler extension for changes)
    • Combined .js files via bundler
  • For more details, see the v2 tracking issue #85