Taking structured logging and elmah.io to the next level
We've supported a range of different logging frameworks for years. The more modern options support something called structured logging, which means that you can embed rich information inside a log message:
log.Information("Hello from {user}", "Ray Donovan");
When looking at the message logged to a file, you'll see the text Hello from Ray Donovan
, but when utilizing a structured logging endpoint like elmah.io or Elasticsearch, log messages can be searched by user
and a lot of other benefits.
Until now, properties inside log messages have gone into the Data tab on elmah.io. While the properties can be made searchable, a common request has been to be able to fill in field values on elmah.io like User
, URL
, and Hostname
. With the recent wave of new versions of our logging framework integrations, setting field values using structured logging is now possible using a simple syntax:
log.Info("{Quote} from {User}", "Hasta la vista, baby", "Arnold Schwarzenegger");
In the example, the User
field on the elmah.io UI will be populated with the value Arnold Schwarzenegger
. Both the Quote
and User
property will still be added to the Data tab, but searching and grouping by a user is now a piece of cake:
user.raw:"Arnold Schwarzenegger"
The new structured logging support is available in our integrations for Serilog, NLog and Microsoft.Extensions.Logging. Enjoy, and as always, please get in contact with feedback.