How we Log, Aggregate and Collect Bugs and Exceptions

ErrLog.IO is a very simple system - we collect errors and exceptions directly from your application.

No Agents. No Server Installations. Just a few lines of code.

In order to collect errors and exceptions, a .Net or JavaScript library is included in your project and initialized. This project captures errors as they happen, bundles as much information as we can collect into a package, and sends it to the closest ErrLog.IO service.

We currently have four collection points located in various Microsoft Azure regions (see here), which processes logs, aggregates them and sends them back to our Data Centre for storage.

Secure and Compressed

Don't want your logs flowing over the internet in plain text? Of course not. We encrypt all packets using TLS at each end point and between our collectors and aggregation servers.

We also compress data before sending it. A raw data packet can be anywhere from 4k-30k, depending on how much stack trace data and environment data is collected. We compress this to around 30% of it's original size. These days with high speed internet it may not seem like a big issue, but every byte counts.

What do we collect?

We try and collect as much data from your framework, in order to present you with a comprehensive error log.

These items vary across platforms and language frameworks, but typically include:

  • The error itself
  • Full stack trace
  • HTTP Request headers
  • HTTP Querystring and Form data
  • Network information
  • .Net Application collections
  • .Net Session collections
  • Browser details
  • Browser capabilities
  • Local system metrics (CPU, RAM)

If there is a data set that you'd like to see, but we've missed it, just let us know! We'll add it to our next release.

Can I exclude data?

Absolutely, when initializing our library, simply select which datasets to exclude. Our documentation covers detailed explanations of how to do it.


 

Discuss this article