Resetting the Seq Forwarder project

Seq Forwarder is a tiny local server that imitates the Seq HTTP ingestion API. You can send logs to it using any Seq client library; by default it listens on port 15341:

// Logging to Seq Forwarder with Serilog
using var log = new LoggerConfiguration()
    .WriteTo.Seq("http://localhost:15341")
    .CreateLogger();

log.Information("Hello, {Name}!", "Seq Forwarder");

Behind the scenes, Seq Forwarder provides two things:

  • An always-available, durable local log buffer. Events are written to it as they arrive.
  • An HTTP-based log shipper. It reads from the buffer and forwards events to a remote Seq server.

The log shipper tolerates intermittent network availability, and works with the log buffer to ensure events make to to Seq ... eventually!

People use Forwarder to deal with logging from occasionally-connected devices, or over unreliable networks. In those situations, it's a very handy tool, but if you have followed its progress you'll have noticed that development had stagnated in the last couple of years.

This happened for a few reasons, but prominent among them for us (the team maintaining it) was that the project's tech stack became awkward to work with: .NET Framework, Nancy 1.x, Windows Installer, WPF... We're still very fond of all of those pieces (well, maybe not Windows Installer quite so much!), but day-to-day we use .NET Core, ASP.NET Core, and Docker, on a mix of Windows, macOS and Linux.

Rather than leave Forwarder to languish in the too-hard basket, we've decided to simplify the project: version 2.0 of Forwarder does away with all of the peripheral bits and pieces, leaving the core log forwarding service in an ASP.NET Core app targeting Windows, macOS and Linux.

Over time we hope this will reduce friction when contributing; immediately, we've added support for Seq's "compact" event format (an issue open for 3+ years!) and improved Forwarder in a number of other areas.

If you're currently using Forwarder on Windows, all you'll need to do when deploying 2.0 is to uninstall Seq Forwarder from Programs and Features, then download the new release bundle and run seqfwd.exe install from an elevated command prompt wherever you extracted the files.

If you're aiming to use Forwarder on macOS or Linux, or want to try things out for the first time, the project should now be a lot more approachable. Grab a release bundle for your OS or check out the GitHub repository and tell us what you think!

Nicholas Blumhardt

Read more posts by this author.