Semantic Logging Application Block (SLAB) 2.0
Updated July 3 2014
Welcome to the official release of SLAB 2.0!
This document contains a brief summary of the block, including late-breaking information that is not included in the main documentation. Additional information and bug fixes delivered after release are available on the
Semantic Logging Application Block Community site
and on the
SLAB MSDN site
Where to get it?
Via NuGet – use the NuGet Package Manager in Visual Studio and search online for the “semantic logging” packages.
The official packages for this release include:
What’s New in this Release?
This major release of the Semantic Logging Application Block, with some potential breaking changes.
- Refactored all sources to be IObservable<EventEntry> instead of sink-specific representations.
- Added support for process and thread id (only when app is running in full trust):
- Values are captured and stored in all destinations.
- Added support for configuring sampling and process filters when running out of process
- Sampling is configured using a general-purpose key/value pair collection. You need to know the same keys and value conventions as when doing sampling in process. Other keys and values can be supplied, as with in process, but these are interpreted by the
sources and might have consequences that need to be acknowledged.
- Process filters now let you get events only from specific processes (specified by name)
- Improved compatibility with the EventSource nuget package
- SLAB's source must be updated and rebuilt to work with the EventSource nuget package (which supports channels, but does not support sampling). The process is now fairly painless.
- Added references to the EventSource nuget package to all projects
- Changed System.Diagnostics.Tracing to Microsoft.Diagnostics.Tracing in all source files
- Defined the EVENT_SOURCE_PACKAGE constant in the unit test project (to disable tests that cannot possibly work with the nuget version).
- Improved the StyleCop integration
- Added notification for out of band events. Events with id 0 are not part of the manifest for an EventSource. Instead they are used to communicate back to the consumer of the events. Notification is made for these with a new event through the SLAB event
- Allowed the out of process service to be installed as an account other than LocalService.
- Consuming ETW events requires access to the performance group. Rather than forcing the admin to include LocalService in this group, give the ability to install to a different account.
- Sinks and EventSource analyzer have been moved into separate nuget packages, leaving the core agnostic.
- The Elasticsearch sink is no longer maintained by p&p. It is now a pure community project.
- Development team: Christopher Bennage, RoAnn Corbisier, Nelly Delgado, Carlos Farre, Grigori Melnik, Fernando Simonazzi, Mani Subramanian, Veerapat Sriarunrungrueang (Adecco)
- Subject matter experts: Vance Morrison, Cosmin Radu
- Community contributors: http://aka.ms/entlib-contributors
Providing feedback and contributing
We would appreciate feedback on any issues found, or any other general comments on this release.
To report a bug, use online
. Other feedback or questions can be posted on the Codeplex
. In addition, we are encouraging and accepting community contributions. For more information, please see
We look forward to your pull requests!
Community support is provided via
. Customers can obtain support through Microsoft Premier Support Services for a fee, but the code is considered user-written by Microsoft support engineers.