Logging “levels” in a structured world
Every logging framework I’ve ever used has a notion of “levels” like “information”, “warning” and “error” that assign importance to events. This is necessary because logging produces a lot of data –...
View ArticleUsing Serilog with F# Discriminated Unions
This week GitHub user vlaci called us out on awful F# support in Serilog. In their issue report they show how a nice clean discriminated union type like “Option” is represented hideously in structured...
View ArticleTagging log events for effective correlation
Correlation, at least when we’re talking diagnostic logs, is the process of finding events that are related to each other in some way. It’s typical to correlate events raised during a transaction, on a...
View ArticleC# 6 string interpolation and Serilog
It’s easy to spot the similarity between Serilog message templates: // Serilog var loggedInUserId = "nblumhardt"; Log.Information("Logged in {UserId}", loggedInUserId); and C# 6 interpolated strings:...
View ArticleA Monster Serilog Update for April 2015
Serilog is an open-source logging framework for .NET that seamlessly integrates text-based logging and fully-structured events. You can write events to regular text files, or use Serilog in combination...
View Articleserilog-generator.exe and fun with key-value settings
Some things are just fun to build, and without much concern for its general utility I thought I’d share one of them :-) serilog-generator.exe is a handy little app for exercising Serilog sinks and log...
View ArticleSeq/2 Update
When I started building Seq nearly two years ago, I expected it would be used occasionally – after all, chasing bugs in production systems isn’t something we set out to do every day :-) The first time...
View ArticleDiagnostic logging in DNX/ASP.NET 5
If you’re writing ASP.NET apps with the latest tooling, you will inevitably encounter the Microsoft.Framework.Logging package. It’s a dependency of ASP.NET MVC, WebForms and much of the related...
View ArticleSeq/2 Beta
Last month I posted the first sneak peek of what you can expect from the upcoming Seq “v2″ release. Since then, the final pieces of the UI have been put (back!) into place, bugs have been squashed, and...
View ArticleFiltering with Signals in Seq 2
Structured logs are designed for easy filtering and correlation. If you monitor apps in multiple environments for example, you’ll pretty quickly turn to structured properties like Environment as a way...
View ArticleAnnouncing Seq 2 RTW
It’s with pleasure I can announce that the RTW build of Seq 2.0 is now available. What is Seq? Seq is a log server designed specifically to take advantage of modern structured logging techniques....
View ArticleSeq 2.1 Refresh
Since Seq 2.0 shipped a couple of weeks ago, enough small fixes and improvements have been collected to make a new point release. Seq 2.1 is ready to download, and includes: Send to app is back (#301)...
View ArticleSeq 2.2: Memory Efficiency, One-click Auto-refresh, Filter History
It took some restraint to get Seq 2.0 over the line: there are so many possibilities that there’s really no way everything I’d like to have done could make the cut. Now the “big bang” is over, it’s...
View ArticleSet the asterisk in project.json version numbers
I have a feeling I’ve bothered the friendly people on Jabbr twice now about how to set a value for the * (‘wildcard’) placeholder in DNX’s project.json files, so here it is for next time… :-) DNX...
View ArticleSeq 2.4
Hot off the press and ready to download from the Seq site. Seq 2.4 is largely a maintenance release with a host of bug fixes, but amongst those are some substantial improvements. Filtering performance...
View ArticleAggregate Queries in Seq Part 3: An Opportunistic Parser
It turns out the parser wasn’t a huge departure from Seq’s existing filter parser. Seq already uses Sprache to parse filter expressions, and Sprache parsers compose very nicely. After making the...
View ArticleAggregate Queries in Seq Part 4: Planning
Seq is a log server designed to collect structured log events from .NET apps. This month I’m working on adding support for aggregate queries and blogging my progress as a diary here. This is the fourth...
View ArticleAggregate Queries in Seq Part 6: Serving Data
Let’s get it out of the way up front – I didn’t manage to fit this series into November. Hrmmmmm… sorry! In the end, I prioritised getting an early preview release out ahead of finishing the blog...
View ArticleHow to notify Slack using logs from your .NET app
If your team uses Slack, it’s a great place to centralize notifications that might otherwise end up cluttering your email inbox. Commits, build results, deployments, incoming bug reports – Slack keeps...
View Article2015 in Review
Another year is almost over! I’ve looked back through the posts on this blog from the past year and made some notes in case you’re looking for some holiday reading. This was a huge year for Serilog....
View Article