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
tonetcoreapp3.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
- ASP.NET Core 3.0 support (StackExchange.Exceptional.AspNetCore) with specific
netcoreapp3.0
builds and fewer dependencies.
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 onException
- 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)
- Getting started docs
- Additional
UseExceptionalPageOnThrow
setting, which will use the Exceptional error page when an exception occurs (like.UseDeveloperExceptionPage()
but with more detail and any custom logging)
- 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
+ andnetstandard2.0
+- Introduces a
StackExchange.Exceptional.Shared
library (a NuGet dependency) for shared code in all of the above
- Introduces a
- 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)- These can be added via
.AddHandler()
(example here) - Highlighting in the log is provided by highlight.js
- These can be added via
- 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)
- HttpModule is also
- Added a
.AddLogData()
extension method onException
for quickly adding key/value pairs for logging custom data - Supported storage providers
- In-memory (built-in)
- JSON on Disk (built-in)
- SQL Server (built-in)
- MySQL (via StackExchange.Exceptional.MySQL)
- PostgreSql (via StackExchange.Exceptional.PostgreSql)
- MongoDB (via StackExchange.Exceptional.MongoDB)
- Internal changes
- Moves to
.less
for styling for easier maintenance (currently requires WebCompiler extension for changes) - Combined
.js
files via bundler
- Moves to
- For more details, see the v2 tracking issue #85