Masterly.BusinessRules.Diagnostics
3.0.0
dotnet add package Masterly.BusinessRules.Diagnostics --version 3.0.0
NuGet\Install-Package Masterly.BusinessRules.Diagnostics -Version 3.0.0
<PackageReference Include="Masterly.BusinessRules.Diagnostics" Version="3.0.0" />
<PackageVersion Include="Masterly.BusinessRules.Diagnostics" Version="3.0.0" />
<PackageReference Include="Masterly.BusinessRules.Diagnostics" />
paket add Masterly.BusinessRules.Diagnostics --version 3.0.0
#r "nuget: Masterly.BusinessRules.Diagnostics, 3.0.0"
#:package Masterly.BusinessRules.Diagnostics@3.0.0
#addin nuget:?package=Masterly.BusinessRules.Diagnostics&version=3.0.0
#tool nuget:?package=Masterly.BusinessRules.Diagnostics&version=3.0.0
Masterly.BusinessRules.Diagnostics
Structured ILogger logging, OpenTelemetry tracing spans and Meter metrics for business-rule evaluation. Use it when you want rule outcomes in your logs and telemetry without writing an observer.
This is a companion package of Masterly.BusinessRules, a composable business-rule engine for .NET.
Install
dotnet add package Masterly.BusinessRules.Diagnostics
- Target framework:
netstandard2.1(.NET Core 3.0+, .NET 5+) - Dependencies:
Masterly.BusinessRules,Microsoft.Extensions.Logging.Abstractions10.0.14,System.Diagnostics.DiagnosticSource10.0.14
Example
using System.Collections.Generic;
using Masterly.BusinessRules;
using Masterly.BusinessRules.Diagnostics;
using Microsoft.Extensions.Logging;
public sealed class CheckoutValidator
{
private readonly ILogger<CheckoutValidator> _logger;
public CheckoutValidator(ILogger<CheckoutValidator> logger)
{
_logger = logger;
}
public RuleEvaluationResult Validate(IEnumerable<IBusinessRule> rules, BusinessRuleContext context)
{
// One structured log line per broken or faulted rule: RuleCode, RuleName, Category, Severity, Outcome, ElapsedMs.
RuleEvaluationOptions options = new RuleEvaluationOptions
{
Observer = new LoggingRuleExecutionObserver(_logger)
};
return BusinessRuleChecker.EvaluateAll(rules, context, options);
}
}
For async batches use LoggingAsyncRuleExecutionObserver. For tracing and metrics, attach TracingRuleExecutionObserver (or TracingAsyncRuleExecutionObserver) and subscribe to the ActivitySource named BusinessRulesActivitySource.Name and the Meter named BusinessRulesMetrics.MeterName; no OpenTelemetry extension package is needed.
Documentation
Log levels and options, span and metric names, and the .Traced() decorator are covered in the full documentation: https://github.com/a7mdfre7at/Masterly.BusinessRules#readme
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Masterly.BusinessRules (>= 3.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.14)
- System.Diagnostics.DiagnosticSource (>= 10.0.14)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.0.0 | 46 | 10/28/2026 |
Release notes for version 3.0.0: https://github.com/a7mdfre7at/Masterly.BusinessRules/blob/master/CHANGELOG.md