TacticTelemetry 1.0.0

dotnet add package TacticTelemetry --version 1.0.0
                    
NuGet\Install-Package TacticTelemetry -Version 1.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="TacticTelemetry" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TacticTelemetry" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="TacticTelemetry" />
                    
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 TacticTelemetry --version 1.0.0
                    
#r "nuget: TacticTelemetry, 1.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 TacticTelemetry@1.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=TacticTelemetry&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=TacticTelemetry&version=1.0.0
                    
Install as a Cake Tool

TacticTelemetry

A small, non-invasive .NET logging sink that ships an application's warnings, errors, and notable events to TacticDB so they can be searched and viewed after the fact. It is a standard Microsoft.Extensions.Logging provider, so it captures the logs an app already writes with no change to a single log call.

See SRS.md for the full specification. The read UI lives in TacticTelemetaryBrowser.

Install

Reference the TacticTelemetry project (or package) from your host.

Use

One line during host configuration:

builder.Logging.AddTacticTelemetry(builder.Configuration);

And one configuration section (TacticTelemetry). In Production, supply these as environment variables with the TacticTelemetry__ prefix.

{
  "TacticTelemetry": {
    "ServerUrl": "https://your-tacticdb-host",
    "ApiKey": "your-master-key",
    "AppId": "belit-telemetry",
    "Table": "logs",
    "Service": "BeLit.Api",
    "MinLevel": "Warning"
  }
}

That is the entire integration. The library:

  • captures every log at or above MinLevel through the standard logging pipeline, alongside your existing providers, which keep working unchanged (its own delivery logs are suppressed, so the sink never feeds itself);
  • provisions the TacticDB app automatically, and writes each day to its own table (logs-2026-08-19) so a write only ever rewrites one small day's blob; you create nothing by hand;
  • keeps Retention:Days of day-tables and drops older ones whole (one delete each, not per record);
  • ships errors first: an Error/Critical is flushed at once rather than waiting out the batch window;
  • buffers, batches, and delivers off your application's threads;
  • is fail-open: if TacticDB is slow or down, your app runs exactly as before, and no log call or startup ever throws because of telemetry.

Configuration reference

Setting Default Purpose
Enabled true Master switch.
ServerUrl (required) TacticDB base URL.
ApiKey (required) Master key. Secret.
AppId telemetry Target app (provisioned if missing).
AppName Telemetry Display name used on create.
Table logs Base table name (the per-day prefix when rotating).
RotateDaily true Write each day to its own table {Table}-yyyy-MM-dd.
Service (required) Logical service name stamped on every event.
Environment host env Environment label.
Instance machine name Instance label.
MinLevel Warning Minimum level captured by this provider.
BatchSize 50 Max events per bulk request.
FlushIntervalSeconds 30 Max wait before a partial batch is flushed. Larger is cheaper: TacticDB rewrites the whole table per write.
QueueCapacity 10000 Bounded queue; drop-oldest when exceeded.
HttpTimeoutSeconds 10 Per-request timeout.
CaptureScopes false Flatten ILogger scopes into properties.
Retention:Enabled true Delete old records so the table stays small (and writes stay cheap).
Retention:Days 14 Delete records older than this.
Retention:IntervalHours 12 How often retention runs.
Retention:MaxDeletesPerPass 500 Cap on deletes per pass (a delete also rewrites the whole table).

Build and test

dotnet build TacticTelemetry.slnx
dotnet test TacticTelemetry.slnx
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.

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
1.0.0 90 8/19/2026