Vestigium.Logging 2.0.0

dotnet add package Vestigium.Logging --version 2.0.0
                    
NuGet\Install-Package Vestigium.Logging -Version 2.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Vestigium.Logging" Version="2.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Vestigium.Logging" Version="2.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Vestigium.Logging" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Vestigium.Logging --version 2.0.0
                    
#r "nuget: Vestigium.Logging, 2.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Vestigium.Logging@2.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Vestigium.Logging&version=2.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Vestigium.Logging&version=2.0.0
                    
Install as a Cake Tool

Vestigium.Logging

build license

Owned JSON Lines logger for the Vestigium suite and for hosts outside it. One JSON object per line for PowerBI, required EVENTID, flood protection, optional HMAC seal, and WPF-safe subscribers.

Target: .NET 10 LTS / WPF / Visual Studio 2026
Architecture: MVVM (CommunityToolkit.Mvvm) + bounded Channel subscribers
License: MIT

Current documents (in the library project):

Files under repository-root _Documentation/ are historical PR01 notes.

Why this library

Diagnostic modules log stack traces and HTTP bodies. Pipe-delimited lines split those payloads. This module writes one JSON object per line, keeps LEVEL as severity and STATUS as outcome, suppresses retry floods with a four-field identity, and never fires a WPF event per line.

Open in Visual Studio

  1. Clone this repository.
  2. Open Vestigium.Logging.slnx in Visual Studio 2026.
  3. Restore NuGet, set Vestigium.Logging.Demo as the startup project.
  4. Run on Windows.

Host at startup

VestigiumLogger.Initialize(cfg =>
{
    cfg.AppId = "PingIQ";
    cfg.LogDirectory = Path.Combine(
        Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
        "Vestigium", "Logs", "PingIQ");
    cfg.MinimumDiskLevel = VestigiumLogLevel.Information;
});
VestigiumLogger.BindLifetime(Application.Current);

Operations logging is on by default (APPID=Vestigium.Logging, EVENTID 5000–9999). Set OperationsLogEnabled = false to turn it off.

Flush() persists the disk queue and keeps accepting writes. Shutdown() (also hooked by BindLifetime) is process-exit.

EVENTID is required:

VestigiumLog.Information(1, VestigiumStatus.None, "System", "Lifecycle", "Started");
VestigiumLog.Warning(2, VestigiumStatus.Timeout, "Network", "ICMP", "Echo timed out");
VestigiumLog.Error(3, VestigiumStatus.Failed, "System", "IO", "Failed to open database", ex);
VestigiumLog.Thrown(ex, VestigiumStatus.Failed);

Keep MESSAGE stable so flood aggregation still works. Put varying values in PROPERTIES.

Custom application events use EVENTID 10000+ via VestigiumCustomCatalog and LoadCustomCatalog.

Defaults (SRS 2.3)

Setting Value
File size cap 20 MB
Count retain 90 inactive files (0 keeps none)
Age delete Off unless janitor is opted in
Flood 5 hits / 30 s / cap 4,096
Disk tripwire 10% free or 5 GB
Subscriber channel 10,000, DropOldest
UI batch 50 events / 100 ms
Operations log On
Seal / archive / janitor Off until the host opts in

Flood identity: (APPID, CATEGORY, LEVEL, MESSAGE).

Projects

Project Role
Vestigium.Logging Engine (JSONL writer, catalog, flood, disk, seal, subscribers)
Vestigium.Logging.Tests Behavior and coverage
Vestigium.Logging.Demo MVVM configuration gallery

Contracts that do not move

  • Flat JSON Lines. No CSV / pipe / tab output path.
  • Disk I/O is VestigiumJsonlWriter.
  • LEVEL is never Success / Failed / Timeout.
  • EVENTID 0–4999 library, 5000–9999 operations, ≥ 10000 custom.
  • Unregistered taxonomy becomes Uncategorized / Unregistered plus an internal Warning.
  • Subscribers receive VestigiumLogEvent, not a pre-rendered string.
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages (31)

Showing the top 5 NuGet packages that depend on Vestigium.Logging:

Package Downloads
Vestigium.Helpers.Network

Workstation inventory and protocol jobs for diagnostic hosts. Logging via Vestigium.Logging. Campaign stats via Vestigium.Helpers.Json. P95 via Analytics. Share probes via FileIo. OUI lookup is a caller URL. The embedded snapshot is a stub.

Vestigium.Helpers.Analytics

Descriptive statistics, quartile bands, confidence intervals, and Shewhart control limits for a numeric series.

Vestigium.Helpers.Hashing

String and file hashing (SHA-2, SHA-3, HMAC-SHA2/SHA3, KMAC, SHAKE, Argon2id, CRC-32/64, xxHash). Separate from Encryption.

Vestigium.Helpers.FileIo

Validated file jobs: recon, five buckets, UniqueName default, Audit Mode, Pause/Cancel, Analytics sizes/rates, ALCOA+ JSONL. Not robocopy.exe.

Vestigium.Helpers.Json

System.Text.Json helpers for file and stream payloads.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.0 86 10/18/2026
1.7.1 2,474 9/18/2026
1.7.0 99 9/18/2026