Semantic Logging Application Block (SLAB) 1.1
Welcome to the official release of SLAB 1.1!
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 “slab” packages. Pick the official Microsoft packages.
What’s New in this Release?
This minor release of the Semantic Logging Application Block contains several new features and updates that will make developers more productive. These include:
- Support for Activity Ids (https://slab.codeplex.com/workitem/5)
- Support for activity IDs for EventSources is available in .NET 4.5.1. This version of SLAB adds support for capturing and storing in all supported sinks the new
ActivityId and RelatedActivityId properties from events published by
EventSource classes. See
this page page for more details on activity tracing and sampling.
- Support for keywords over 32 bits (https://slab.codeplex.com/workitem/26)
- Making formerly internal BufferedEventPublisher class public to make it easier to write custom SLAB sinks
- Added EnableEvents and DisableEvents extension methods to the
EventListener class to configure event listeners using an event source name rather than an event source instance. This allows capturing events from sources which are not publicly accessible, such as those generated by the Task Parallel Library (TPL) event
provider to indicate activity ID transfers when tasks are used.
- Added a set of functional acceptance tests (BVTs).
- Added the
- Refactoring of declarative configuration support: the interfaces for defining custom configuration elements for custom sinks are now part of the main SLAB assembly. Packages providing custom sinks and formatter configuration elements now don't need
to reference the Microsoft.Practices.EnterpriseLibrary.SemanticLogging.Etw assembly (which isn't available as a NuGet package).
- Out-of-proc service now available as a NuGet package: EnterpriseLibrary.SemanticLogging.Service.
- Development team: Christopher Bennage, RoAnn Corbisier, Nelly Delgado, Carlos Farre, Grigori Melnik, Fernando Simonazzi, Mani Subramanian
- 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.
1. Performance considerations when using the ActivityId feature:
We favor and recommend using SLAB in process when consuming TPL events for end-to-end tracing. See
Activity tracing and sampling for details.
2. Security considerations using the SemanticLogging.Elasticsearch sink:
2.1 Currently, there is no authentication for the Elasticsearch store. A basic authentication plugin is
available, but it is experimental.
It only should be used with SSL. Our solution does not integrate with any authentication scheme.
There is no SSL support in Elasticsearch unless the JETTY Plug In is used (see
Thus, be aware of the security vulnerabilities when exposing business or other sensitive metrics via CURL, SENSE, and so on, or when the customer data is exposed while in transit.
Another option is to deploy Elasticsearch behind a secure layer MVC, web api. See
this page for more info.
2.2 The System.Net.Http and System.Net.Http.Headers namespace might not be available in future versions of Windows for use by Windows Store apps. Starting with Windows 8.1 and Windows Server 2012 R2, use
Windows.Web.Http.HttpClient in the Windows.Web.Http namespace and the related
Windows.Web.Http.Headers and Windows.Web.Http.Filters namespaces instead for Windows Store apps.
3. Microsoft Azure Table Sink
The Azure Table Sink now has been updated to use version 3 of the Azure Storage API. Make sure to update your Azure Tools and the Azure Storage emulator to the latest version (2.3, released Apr 3, 2014).