Exceptionless Slack Integration, Further Improved Notifications

As you guys know, we've been working on notification improvements lately. This latest video update by Blake is no different and involves Slack integration!

If you're not familiar with Slack, definitely check it out. It's a great app for communicating with your team, and much more. For Exceptionless, it's been something we've wanted to integrate closely with for a while now, because email can be very tedious and overwhelming. With Slack integration, you can set up a specific channel for your Exceptionless notifications to go to, and have an organized eye on your events.

Watch the video above for an explanation of the integration, and see below on how to set it up for yourself.

Set up Slack Notifications for Exceptionless #

First, go into your project's settings in the Exceptionless app and click on the Integrations tab.


Then, click on "Add Slack Notifications" and log in to your slack team.

Once logged in, you will need to select the channel you want Exceptionless Notifications to post to and click Authorize.

Once authorized, you can then configure the different notification settings by going back to the Exceptionless app and into the project's integrations tab again.


Once integrated and configured, notifications will look something like the below screenshot, with the message, type of event, stack trace, links to actions, etc.

Exceptionless Slack notification(/assets/exceptionless-slack-example.jpg)

We're excited to keep improving notifications, and would love for you guys to test this out for us.

Integrations with other chat & productivity tools like HipChat and Microsoft Teams are on our list, as well, so if you use these please ping us and let us know so we can gauge interest!


Watch more Live Code Demos

Email Notification Improvements - Walkthrough and Details

exceptionless email notifications

Recently, we made several improvements to our email notifications, adding additional details, improving rendering, and more. Blake has mentioned it in a few of his weekly update videos, but today we wanted to walk you through it and add a few more details, with examples. Check it out!

Exceptionless Email Notification Implementation #

We decided to use Zurb's Foundation for Emails to help us create emails that look great on all email clients. The reason we went with Zurb is because it has clean markup that translates to good old (ugly) HTML that just works. It also works great with Handlebars.Net which we use to render the email content.

An example of one of our event notification emails can be found here.

Then, we run a Node.js build task to transform the templates into some pretty crazy html markup that works everywhere. The markup at that link contains the Handlebars.Net syntax.

These templates are stored as embedded resources so we can use them from any environment and render them out with ease! Here is a code example of how we perform that task.

We added JSON-LD support, to the emails to give us rich contextual actions, by starting with this Google Developer tutorial and ended up with the below implementationIt's worth noting that we had to go through their verification process for the actions to be enabled.

<script type="application/ld+json">
"@context": "http://schema.org",
"@type": "EmailMessage",
"description": "\",
"potentialAction": {
"@type": "ViewAction",
"target": "\/event/\",
"url": "\/event/\",
"name": "View Event Details"
"publisher": {
"@type": "Organization",
"name": "Exceptionless",
"url": "https://exceptionless.com",
"logo": "https://be.exceptionless.io/img/exceptionless-48.png"

We tested the emails in Outlook for Windows and Mac, Paper Cut, Gmail on Safari, and Apple Mail. Then, we used Litmus to test a wide range of clients before publishing and pushing everything live.

Questions? Comments? #

We hope our build out here can help other developers, and we would love to hear your feedback, questions, or comments either here on the blog or over on GitHub!

Code on.

Collect Project Level Usage Stats, UI Updates, Foundatio Updates - Weekly Video 5/8/2017

We've snuck in lots of updates for this past week! New features have been added, such as collecting project-level usage statistics, the ability to add notes to API keys, and much more. Oh, and we're no longer throttling free plans! That's for Exceptionless core, but we've also made updates  to the Exceptionless UI and Foundatio core, Foundatio.Repositories, and Foundatio.Parsers. Check everything out, below.

Exceptionless Changes #

  • We added the ability to collect project-level usage statistics. This allows us to view usage, show total blocked in emails, and more. It would also allow us to tweak rate limiting on a per-project basis.
  • You can now add notes to API keys in the app.
  • We also stopped throttling free plans.
  • And, finally, we introduced variou mail templates into the mix.

Exceptionless.UI Updates #

  • On the manage project page, we are now showing project usage statistics.
  • On the sessions dashboard, we have added the ability to see active users.
  • On the stack and session dashboards, we are now always showing hidden or fixed events.
  • When you select a usage time range, you will be redirect to the organization or project dashboard.

Updates to Foundatio, Foundatio.Repositories, and Foundatio.Parsers #

  • In Foundatio core, we merged in the CloudWatch Metric clients and SQS changes. We also moved each client into its own repo.
  • For Foundatio.Repositories and Foundatio.Parsers, we created the final 1.x release and merged in the Elasticsearch 5 branches.


Watch more Live Code Demos

Daily Summary Email Improvements, Foundatio Updates, and more - Weekly Update 5/1/2017

In the 5/1/17 weekly update, Blake talks email notification improvements, bug fixes, and Foundatio.Repositories and Foundatio.Parsers updates. Check out the video above or read the details below.

Updates to Exceptionless #

In the past few weeks, we have made massive improvements to the daily summary emails, and added support for json-ld. You can keep up with continued email improvements over on issue 177 on GitHub. Let us know what you think there!

We also fixed a bug with the Redis cache client improperly setting batch cached keys.

Foundatio.Repositories & Foundatio.Parsers Updates #

We updated Foundatio.Repositories so that it no longer ignores the version property.

For Foundatio.Parsers, we merged code and server mapping properties.


Watch more Live Code Demos

Weekly Update for 4/24/17 - Blake Speaking @ North Dallas .NET and more!

In this week'd update, Blake does a little traveling and speaking, and both Exceptionless and Foundatio.Repositories get an update!

Blake Speaks @ North Dallas .NET #

On May 3, Blake spoke at the North Dallas .NET User Group meetup in Plano. The topic was Exception Driven Development, and of course he killed it! Naturally, the Exceptionless love was shared to all.

Exceptionless & Foundatio.Repositories Updates #

For Exceptionless, we worked on upgrading the email templates to use Zurb for emails and handlebars. We also fixed an issue where you could only log in 15 times in a 15 minute time period.

For Foundatio.Repositories, query if (FieldEqualsIf) support has been added.


Watch more Live Code Demos

Exceptionless Weekly Update 4/17/2017

Nothing too crazy going on in this week's update. A few tweaks to Exceptionless, Exceptionless.NET, and Exceptionless.JavaScript. Check out the details below, and don't forget to let us know how we're doing!

Weekly Code & Development Update - 4/17/2017 #

Exceptionless Core Updates #

This week we released the Exceptionless 4.0.2 minor release with a few fixes and tweaks. Check out the Exceptionless 4.0.2 release details over on GitHub. Self hosters are the only ones that will need to worry about upgrading.

We also made some good strides in reducing the amount of IO work the event post queues have to do. Woohoo!

Lastly, for Exceptionless core, we merged in MailKit and continued improving email notifications.

Exceptionless.NET Client Update #

The only really notable thing we did for the .NET client is fix the ProcessQueue method, making sure it blocks until the queue has been processed.

Exceptionless.JavaScript Client Update #

For our JavaScript client, we want to work on supporting universal apps, but first we have to upgrade to the latest version of TypeScript, so we did some work this week toward that.


Watch more Live Code Demos

Weekly Update - Review of New Releases and More

Last week we announced release notes for Exceptionless 4.0.2, Exceptionless.NET 4.0.3, and Exceptionless.UI 2.6.2. In our weekly update this week, we review some of those changes/updates, Foundatio changes, and more. Check it out!

Exceptionless Live Stream Update 4/13/17 #

Exceptionless Core Updates #

In Exceptionless Core, we added support for MailKit, pipeline action and plugin level metrics, and the ability to dynamically shut down functionality via the configuration. We also made pipeline performance improvements. There are more performance improvements to make,

Foundatio Updates #

For Foundatio, we updated the Azure storage copy implementation to copy server side, fixed an issue where FolderFileStorage wasn't behaving properly when renaming files that exist, and fixed a Redis cache client issue where deleting cache items by wild card was erroring out if there were no matching keys.

  • Updated the azure storage copy implementation to copy server side.

Changes to Exceptionless.NET #

For the .NET client, we merged in changes to csproj and released version 4.0.3. Make sure to check out the release notes and upgrade!

Updates to Exceptionless.UI #

In Exceptionless.UI, lists of tags now wrap to the next line, and we fixed an issue where long user names would cause the UI to go crazy.

Updates to Foundatio.Repositories #

Here, we fixed a caching issue where you couldn't set the key without enabling cache, and we simplified index creation and stopped using a lock.


Watch more Live Code Demos

Exceptionless.NET client, core, UI, releases - Bugs, Usability, Performance, Self Hosting

This past week we released Exceptionless 4.0.2 and Exceptionless.NET 4.0.3, consisting of maintenance updates that fixed several usability issues for self hosters, various performance, issues, bug fixes, and some general improvements.

Below is a highlight of the release notes, and don't forget to let us know how we're doing or what can improve by following the relevant links to GitHub and posting an "issue."

Lastly, thanks to all of our contributors for helping us solve problems, add functionality, and improve Exceptionless!

Exceptionless 4.0.2 Release Notes #

  • Both @caesay and @edwardmeng submitted pull requests and helped us solve an issue with sending emails (issue #290). MailKit, a "cross-platform mail client library," has now been integrated, adding "fully featured and RFC-compliant SMTP, POP3, and IMAP client implementations" into Exceptionless.
    • There were also a few issues with email when hosting in different environments, such as Azure Functions. In this case, all email settings must be stored in settings and not web.config. So, we moved the MailKit implementation to the insulation project and cleaned up the main mailer class, among a few other tweaks, to further improve email sending in the app. Thanks again caesay and edwardmeng!
    • If you are self hosting, please update the email settings in appSettings
  • Support for Azure Storage Queues has been added to the app.
  • A bug that could cause an exception and make the stack work queue be abandoned when a stack of events was deleted has been fixed.
  • The GeoIP database was being downloaded each time the app was restarted. That has also been fixed.
  • Incorrect emails were being generated in some self hosted and dev environments because the BASE_URL didn't contain the proper hashbang (#!). Fixed that issue in this release, as well.
  • View the full changelog.

Upgrading to Exceptionless 4.0.2 #

You should only worry about upgrading if you are a self hoster. If this is the case, please see the Exceptionless self hosting documentation. Note that changes to the Elasticsearch configuration were made in this release, so make sure to review the documentation for more information.

Exceptionless.NET 4.0.3 Release Notes #

New Features #

  • log4net .NET Core support has been added.
  • 404 reporting support in ASP.NET Core has been added.
  • You can now set the min log level in configuration by calling SetDefaultMinLogLevel, allowing you to set a temporary min log level that is used until the server settings are retrieved.
  • Client IP support for X-Forwarded-For has been added (thanks @barankaynak!), which enables us to properly identify individual users and also helps when using proxy servers.
  • You can now more easily capture the HttpActionContext by adding SetHttpActionContext extension methods to web clients, allowing request and user info to be captured by default when manually submitting events.
  • We added SetException overload so you can now submit any event type with an exception object. So, for instance, you can now submit a log message through with an exception object and the exception tab will show.

Bug Fixes #

  • Fixed an issue where the ASP.NET Core 1.1 runtime was sometimes preventing clients from reporting any data.
  • Fixed an issue where exceptions that converted to 404's were not running the event exclusion logic.
  • Fixed an issue where the duplicate checker plugin could DOS itself if you had client logging enabled (disabled by default - only meant for diagnostic logging).
  • Fixed an issue where the NLog logger wasn't setting event type.
  • Fixed an issue with package configuration of signed web packages.
  • Fixed an issue where adding our trace listener could blow up due to other invalid configured trace listeners.
  • Upgraded to the latest version of BenchMarkDotNet and ensure benchmarks run (Contrib @adamsitnik)

Upgrading #

Just update your NuGet packages. For more info, check out the upgrade guide.

View the full changelog.

Exceptionless.UI 2.6.2 Release Notes #

  • Previously, long, single-line content could cause the user interface to go crazy while updating event lists. This has been fixed (thanks @caesay!).
  • Also, tags now wrap to the next line, instead of overflowing the content area. @caesay strikes again!
  • View the full changelog.

Feedback Requested #

We want to know what you think about Exceptionless - what you think we should add, fix, streamline, improve, etc. Please let us know!

Azure Functions, Email Client, Foundatio - 4/3/17 Weekly Update

Q2 2017 is here already, whether we are ready for it or not! In March, we released several new updates to Exceptionless and Foundatio, so our first update in April isn't crazy, but here we go!

Exceptionless Updates #

Foundatio Updates #

  • This past week, we worked on some bug fixes related to queue processing in Foundatio.


March Update Rollup - New Releases, Updates, Bug fixes, and more!

March was a productive month! We got tons done, and we're here to share everything with you so you're up to date and can hold us accountable if you notice any bugs in the changes.

Let's get to it!

Week of 3/6/2017 #

Search query fix, Implemented AsyncAutoResetEvent in Foundatio, Upgraded project format #

  • Fixed an issue in Exceptionless where any search query starting with data. was being modified.
  • In Foundatio, the main repository that will contain the default deployment and EditorConfig settings for all of our projects, an effort was made to use less locking in queues and the CacheLockProvider by using AsyncAutoResetEvent, a lighter weight async primitive.
  • We also upgraded to the new VS2017 project format in our Foundatio repositories.

Week of 3/13/2017 #

Attended Elastic{ON} 17, Released Foundatio 5.0, PowerShell script update, RabbitMQ update, IMessageBus breakage, Marker interface addition #

  • Blake attended Elastic{ON} and talked to product teams about issues we've been running into, as well as the future of Elasticsearch.
  • Foundatio
    • Released Version 5.0 of Foundatio
    • We also modified an existing PowerShell script that updates existing projects to the VS2017 project format.
    • And, of course, we added some more documentation!
  • Foundatio Repositories
    • Updated the RabbitMQ queues to use the delayed message exchange
    • Broke the IMessageBus.Subscribe API surface by changing the signature to SubscribeAsync
    • Added a marker interface when patching documents

Watch the 3/13/2017 update video

Week of 3/20/2017 #

Released Exceptionless 4.0.1, Performance improvements, Bug fixes, Exceptionless.NET udpates, Foundatio Amazon SQS queues and CloudWatch metrics pull requests, Foundatio reindexing improvements #

  • Exceptionless
    • Released Exceptionless version 4.0.1
    • We upgraded to the latest Foundatio and Repositories builds, which brings in some performance improvements and bug fixes.
    • Visual Studio 2017 is now a requirement to debug any Exceptionless project.
    • Various bug fixes
  • Exceptionless.Net
    • Upgraded to VS2017 project format and fixed an asp.net core bug.
    • All nightly builds for all of our NuGet packages can now be found on myget.
  • Foundatio
    • New pull request for Amazon SQS queues and CloudWatch metrics
    • We also had some more documentation contributions!
  • Foundatio Repositories
    • We made some improvements around reindexing.
    • Then we also fixed a few various bugs

Watch the 3/20/2017 update video

Week of 3/27/2017 #

Event metadata archiving, Amazon SQS queus and CloudWatch metrics pull requests, Blake speaks at code camp #

  • This week we added a setting in Exceptionless for disabling the archiving of event metadata
  • For Foundatio, a new pull request was made for Amazon SQS queues and CloudWatch metrics. We've done a lot of work to queues and the message buses to make the constructors have options classes that get passed in. We've also done a lot of work to the Azure implementations to try and optimize them and fix bugs.
  • Lastly, Blake spoke at Northeast Wisconsin Code Camp over the weekend on exception driven development. The slides can be found here.

Watch the 3/27/2017 update video


Watch more Live Code Demos