CentralLogger.Client
2.0.2
See the version list below for details.
dotnet add package CentralLogger.Client --version 2.0.2
NuGet\Install-Package CentralLogger.Client -Version 2.0.2
<PackageReference Include="CentralLogger.Client" Version="2.0.2" />
<PackageVersion Include="CentralLogger.Client" Version="2.0.2" />
<PackageReference Include="CentralLogger.Client" />
paket add CentralLogger.Client --version 2.0.2
#r "nuget: CentralLogger.Client, 2.0.2"
#:package CentralLogger.Client@2.0.2
#addin nuget:?package=CentralLogger.Client&version=2.0.2
#tool nuget:?package=CentralLogger.Client&version=2.0.2
CentralLogger.Client
This is the all-in-one package for adding CentralLogger to a .NET application. It includes:
CentralLogger.Client.dllandCentralLogger.Abstractions.dll.- The complete self-contained Windows x64
CentralLogger.Servicepayload. - Build-transitive deployment that copies the service to
service\beside your application output. - Durable client spooling, automatic reconnect, installed-service startup, and portable-service startup.
Requirements
- .NET 10 or later application.
- Windows x64 for the included service executable.
- Administrative rights only when permanently installing the Windows service.
Install
dotnet add package CentralLogger.Client --version 2.0.2
For a local package feed:
dotnet add package CentralLogger.Client --version 2.0.2 --source C:\path\to\publish\nuget
Build the application once. The output will contain:
YourApplication.exe
service\
CentralLogger.Service.exe
CentralLogger.Service.dll
appsettings.json
...runtime dependencies...
Start logging
Initialize once at application startup:
using CentralLogger;
Logger.Initialize("ATMApplication");
Create one logger for each class or component:
private static readonly Logger Log =
new("CashDispenser", "$Workfile: CashDispenser.cs $", "$Revision: 1.0 $");
Write logs without waiting for the service or database:
Log.Debug("Starting dispense operation.");
Log.Info("Dispense completed.");
Log.Warning("Cassette level is low.");
Log.Error(exception, "Dispense failed.");
Log.Write("CashPresented", "Cash was presented to the customer.");
Applications do not call FlushAsync during normal use. Entries are queued durably and delivered in the background. A bounded automatic drain runs at process exit, and unacknowledged entries remain in the client spool for replay.
Service behavior
All applications connect to the same local named-pipe service and write to one central database. The default database is:
C:\ProgramData\Company\CentralLogger\CentralLogs.db
If the installed CompanyCentralLogger Windows service is unavailable, the client locates service\CentralLogger.Service.exe from the application output and starts it in portable mode. Multiple applications may contain the payload; a machine-wide mutex ensures only one writer service is active.
Portable startup is deliberately unelevated because application build/output folders are commonly writable by the current user. For environments where the ProgramData location is administrator-only, install the included Windows service. If ElevatePortableService is explicitly enabled, also set an absolute ServiceExecutablePath located in an administrator-controlled, ACL-protected installation directory.
For a permanent Windows-service installation, run the included service\Install-Service.ps1 from an elevated PowerShell session. The service configuration is service\appsettings.json; database, retention, encryption, recovery, and archive settings belong to the service, not application projects.
The updated installer grants local authenticated users permission to start and
query the service without elevation. It retains restricted database access;
ordinary applications write through the named pipe. Rerun this installer once
for an existing installation. After installation, Logger.Initialize("App")
automatically starts a stopped service. Portable startup needs write access to
the configured shared storage and never asks for UAC by default.
Monitoring-agent commands
The included service executable can be called by another local process without affecting the running service:
.\service\CentralLogger.Service.exe status --pretty
.\service\CentralLogger.Service.exe export `
--start "2026-10-01T08:00:00Z" `
--end "2026-10-01T09:30:00Z"
status returns JSON with healthy, canAcceptLogs, canExport, service
counters, storage status, and the available UTC range. export automatically
creates one ZIP containing complete databases for fully covered backups,
range-filtered databases for partial boundary sources, and manifest.json.
Success prints the ZIP path. A range with no records prints
error:no logs found; every other export failure prints
error:<short description>. Use --json for detailed success output. Exit
codes are 0 for healthy/success, 1 for command failure, 2 for a completed but
degraded/unavailable status, and 64 for invalid arguments. Sensitive sections
remain encrypted in the extracted databases.
| Product | Versions 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. |
-
net10.0
- System.Security.Cryptography.ProtectedData (>= 10.0.12)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on CentralLogger.Client:
| Package | Downloads |
|---|---|
|
Xfs351
CEN/XFS 3.00-3.50 runtime binaries and standalone settings editor for Windows x86 and x64. |
|
|
Xfs351.Settings
Embeddable WPF settings editor for Xfs351 device configurations and registered XFS logical services. |
|
|
Xorvyx.Xfs
CEN/XFS 3.00-3.50 runtime binaries and standalone settings editor for Windows x86 and x64. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Targets .NET 10 and includes the client libraries, build-transitive deployment support, and the complete self-contained win-x64 service payload.