CoAkka.Logger
1.2.3
dotnet add package CoAkka.Logger --version 1.2.3
NuGet\Install-Package CoAkka.Logger -Version 1.2.3
<PackageReference Include="CoAkka.Logger" Version="1.2.3" />
<PackageVersion Include="CoAkka.Logger" Version="1.2.3" />
<PackageReference Include="CoAkka.Logger" />
paket add CoAkka.Logger --version 1.2.3
#r "nuget: CoAkka.Logger, 1.2.3"
#:package CoAkka.Logger@1.2.3
#addin nuget:?package=CoAkka.Logger&version=1.2.3
#tool nuget:?package=CoAkka.Logger&version=1.2.3
CoAkka.Logger

.NET connector package for CoAkka Logger.
This package targets net8.0, is tested in .NET 8, .NET 9, and .NET 10
applications, and bundles native logger generation 1.2.1+f50756ebff0d for
macOS ARM64, Linux x64/ARM64, and Windows x64/ARM64.
New To CoAkka Logger
CoAkka Logger is the native-backed logging side of CoAkka. It gives a host language a small logger API while the native logger core owns bounded queue shape, pressure behavior, drain semantics, counters, and lifecycle state.
Many logging stacks become unreliable exactly when systems need them most:
- synchronous sinks stall request, worker, or event-loop paths
- asynchronous appenders hide queue growth until RAM and latency spike
- implicit drop behavior loses records without a clean emitted, delivered, dropped, or rejected account
- language-by-language adapters drift in semantics, counters, and diagnostics
CoAkka Logger is designed to be narrower and more predictable:
- bounded queue instead of pretending memory is infinite
- explicit reject/drop behavior under pressure
- stable native core shared across host-language connectors
- drain and counter semantics visible in samples and diagnostics
- a shape that fits runtime-aware applications instead of only console output
Use these public repositories to orient first:
| Repository | Use it for | Link |
|---|---|---|
coakka-samples |
Runnable examples and code you can inspect first. | https://github.com/phuong-tran/coakka-samples |
coakka-publish |
Released packages, native archives, manifests, checksums, compatibility matrix, and release notes. | https://github.com/phuong-tran/coakka-publish |
Run the matching sample:
git clone https://github.com/phuong-tran/coakka-samples.git
cd coakka-samples
bash run.sh logger csharp basic
C# logger sample docs: https://github.com/phuong-tran/coakka-samples/tree/main/logger/csharp
Try the package without cloning any CoAkka repo after the NuGet release is published:
mkdir coakka-logger-csharp-first-run
cd coakka-logger-csharp-first-run
dotnet new console --framework net8.0
dotnet add package CoAkka.Logger --version 1.2.3
Quick Start
using CoAkka.Logger;
using var logger = LoggerHost.Start(new LoggerStartSpec(
SystemName: "customer-app",
QueueCapacity: 256,
MinLevel: LoggerLevel.Info));
if (!logger.TryInfo(
"customers.create",
"{\"event\":\"customer_created\",\"customer_id\":\"cust-001\"}",
out var sequence))
{
Console.WriteLine("logger queue full");
}
var record = logger.AwaitNext(1_000);
var stats = logger.Stats();
Console.WriteLine($"sequence={sequence}");
Console.WriteLine($"delivered={stats.DeliveredCount} dropped={stats.DroppedCount}");
Console.WriteLine(record?.Message);
One process owns one active logger host per logging boundary. Start the host, emit records through explicit categories, observe pressure through return values and counters, then dispose the host during application shutdown.
Package Shape
LoggerHost.Start(...)for a bounded native logger hostTryInfo(...)andTryLog(...)for explicit accepted/rejected writesAwaitNext(...)for deterministic drain behavior in samples and testsStats()for queue depth, emitted, delivered, dropped, and high-water countersReadInfo()for native ABI, version, git generation, and docs hint- native logger resolution through NuGet RID native assets
Supported NuGet runtime identifiers:
osx-arm64linux-arm64linux-x64win-arm64win-x64
Development
Build:
bash logger/csharp/scripts/build-package.sh
The package is written to:
logger/csharp/build/nupkg/CoAkka.Logger.1.2.3.nupkg
Readiness gate:
bash logger/csharp/scripts/check-nuget-readiness.sh
Packaged consumer smoke:
bash logger/csharp/scripts/smoke-packaged-package.sh
NuGet release steps live in RELEASE.md. The guarded publish
script requires NUGET_API_KEY and
COAKKA_NUGET_PUBLISH_CONFIRM=CoAkka.Logger/1.2.3 before it pushes anything
to nuget.org.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Lowers the .NET app-host baseline to .NET 8 while preserving native logger generation 1.2.1+f50756ebff0d.