Archive for category Uncategorized
Structured logging (also sometimes called semantic logging) is a useful addition to the software development toolkit.
The latest release (2.2.0, and some 2.1.728) of Essential.Diagnostics adds structured tracing capabilities to the .NET Framework System.Diagnostics. It integrates seamlessly with existing tracing, including from the .NET Framework, and includes both producer-side extensions (to include in your application) and trace listener changes (to integrate with structured tracing systems).
The key new and updated packages are:
While the packages can be used independently, using both a producer and consumer in combination multiplies the benefits.
This was originally going to be some guideline instructions for a CodePlex project, Essential.Diagnostics that I work on, but it ended up being more an opinion piece so I thought it would fit better on a blog.
There are several trace listeners (loggers) in the .NET Framework that can produce XML output. Outputting to XML results in more complex (verbose) files than, say, a simple text file output, but usually has the benefit of being better processed by tools, correlated across tiers, etc.
There are three main XML listeners, plus one extension in Essential.Diagnostics:
- RollingXmlTraceListener (in Essential.Diagnostics)
- EventSchemaTraceListener (in System.Core)
- EventProviderTraceListener (in System.Core)
Examples of how to configure and use each one (used to produce the output below) is provided in the Essential.Diagnostics project.
Read the rest of this entry »