All Projects → sgryphon → essential-diagnostics

sgryphon / essential-diagnostics

Licence: MS-RL License
Essential.Diagnostics contains additional trace listeners, filters and utility classes for the .NET Framework System.Diagnostics trace logging. Included are colored console, SQL database, rolling file, Seq logging server, and in-memory trace listeners, expression filters, activity and logical operation scopes, and configuration file monitoring.

Programming Languages

C#
18002 projects
powershell
5483 projects

Projects that are alternatives of or similar to essential-diagnostics

jsish
Jsi is a small, C-embeddable javascript interpreter with tightly woven Web and DB support.
Stars: ✭ 32 (-44.83%)
Mutual labels:  tracing, diagnostics
Tracing
Application level tracing for Rust.
Stars: ✭ 1,294 (+2131.03%)
Mutual labels:  tracing, diagnostics
go-sensor
🚀 Go Distributed Tracing & Metrics Sensor for Instana
Stars: ✭ 90 (+55.17%)
Mutual labels:  tracing
probes-api
Software Activity Metering - Probes Open API
Stars: ✭ 31 (-46.55%)
Mutual labels:  tracing
java-web-servlet-filter
OpenTracing Java Web Servlet Filter Instrumentation
Stars: ✭ 20 (-65.52%)
Mutual labels:  tracing
DnsTube
Access your computer from anywhere. DnsTube is a Windows .NET dynamic DNS client for Cloudflare.
Stars: ✭ 137 (+136.21%)
Mutual labels:  dot-net
zipkin-cpp-opentracing
OpenTracing Tracer implementation for Zipkin in C++
Stars: ✭ 46 (-20.69%)
Mutual labels:  tracing
blindsight
Blindsight is a Scala logging API with DSL based structured logging, fluent logging, semantic logging, flow logging, and context aware logging.
Stars: ✭ 70 (+20.69%)
Mutual labels:  tracing
openwhisk-runtime-dotnet
Apache OpenWhisk Runtime .Net supports Apache OpenWhisk functions written in .Net languages
Stars: ✭ 23 (-60.34%)
Mutual labels:  dot-net
CreatingPlatformPlugins
A set of examples and documentation to aid in the development of cross-platform libraries and plugins.
Stars: ✭ 48 (-17.24%)
Mutual labels:  dot-net
openmessaging.github.io
OpenMessaging homepage
Stars: ✭ 12 (-79.31%)
Mutual labels:  tracing
tracecode-toolkit-strace
Trace software components, packages and files between Development/Source and Deployment/Distribution/Binaries codebases - strace build analysis
Stars: ✭ 21 (-63.79%)
Mutual labels:  tracing
xunit-orderer
Implementation of ITestCaseOrderer enforcing xUnit to run the facts in strict order
Stars: ✭ 15 (-74.14%)
Mutual labels:  dot-net
Unchase.FluentPerformanceMeter
🔨 Make the exact performance measurements of the public methods for public classes using this NuGet Package with fluent interface. Requires .Net Standard 2.0+. It is an Open Source project under Apache-2.0 License.
Stars: ✭ 33 (-43.1%)
Mutual labels:  dot-net
bpfps
A tool to list and diagnose bpf programs. (Who watches the watchers..? :)
Stars: ✭ 93 (+60.34%)
Mutual labels:  tracing
gateway
A proxy to buffer and forward metrics, events, and traces.
Stars: ✭ 94 (+62.07%)
Mutual labels:  tracing
KeepSitecoreSimple
Advanced diagnostics techniques home
Stars: ✭ 41 (-29.31%)
Mutual labels:  diagnostics
pyenvdiff-lib
Python environment comparison tool
Stars: ✭ 23 (-60.34%)
Mutual labels:  diagnostics
chrometracing
libraries for various programming languages that make it easy to generate per-process trace files that can be loaded into chrome://tracing
Stars: ✭ 21 (-63.79%)
Mutual labels:  tracing
splunk-otel-java
Splunk Distribution of OpenTelemetry Java
Stars: ✭ 39 (-32.76%)
Mutual labels:  tracing

Essential Diagnostics

Using and extending System.Diagnostics trace logging

Docs | Examples | Guidance | FAQ | Listeners | Fluent | Core

Essential.Diagnostics contains additional trace listeners, filters and utility classes for the .NET Framework System.Diagnostics trace logging. Included are colored console (that allows custom formats), SQL database (including a tool to create tables), formatted rolling file trace listener, rolling XML trace listener, Seq logging server listener, and in-memory trace listeners, simple property and expression filters, activity and logical operation scopes, and configuration file monitoring.

Installing

Listeners (various output locations)

Install the Essential.Diagnostics packages for just the trace listeners you need via NuGet. Using these classes requires no change to existing System.Diagnostics tracing code, only config changes (which are included in the packages):

Core

The trace listener packages depend on the Core package, which has a base listener class, as well as the expression filter and file configuration watcher. Usually it is installed automatically with one of the above listeners, but it can also be installed separately if needed:

Fluent extensions (application-side, to improve tracing)

There is also a separate package that has the scope utility classes, abstractions, and templated classes for easy use with dependency injection. This package makes using System.Diagnotics trace sources easier, and can be used either separately (with system trace listeners), or in conjunction with the extended trace listeners above.

Examples

Source code and examples are available here on GitHub.

Background

The .NET Framework System.Diagnostics provides powerful, flexible, high performance logging for applications -- and the core capabilities are already built into the .NET Framework!

This project uses the inbuilt features of the System.Diagnostics namespace, and shows how logging and tracing can be integrated into a client application by taking advantage of existing .NET Framework features.

This project also provides a library that enhances System.Diagnostics through it's numerous built-in extension points, but shouldn't require any changes to existing code (that uses the .NET Framework logging) to use some or all of the features.

Extension features provided by this project are marked EX -- other features are already provided by the .NET Framework you are using right now.

To see how you can use System.Diagnostics and the Essential.Diagnostics extensions see Getting Started and the Logging Primer.

Features

The .NET Framework System.Diagnostics, along with the extensions here, provides the following key features, or see a comparison with other logging frameworks.

  • Multiple logging sources.
  • Output to multiple trace listeners with different filtering.
  • Logical operation context and activity correlation.
  • Multiple levels of event types including activity tracing.
  • Integration with existing .NET Framework tracing (such as WCF).
  • Proven architecture.
  • Flexible and extensible design.
  • High performance.
  • No change required to existing .NET Framework trace statements.

The Framework and extensions can be used to write information to any of the following Listeners:

Log information can be custom formatted and include context information such as:

  • Event id, type, and message
  • Source - allows you to partition your logs
  • Event time and date
  • Thread id, process id and call stack
  • Correlation, activity ID, and logical operation stack
  • Machine name, user name and Windows Identity EX
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].