CoAkka.Logger 1.2.3

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

CoAkka.Logger

CoAkka

.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 host
  • TryInfo(...) and TryLog(...) for explicit accepted/rejected writes
  • AwaitNext(...) for deterministic drain behavior in samples and tests
  • Stats() for queue depth, emitted, delivered, dropped, and high-water counters
  • ReadInfo() for native ABI, version, git generation, and docs hint
  • native logger resolution through NuGet RID native assets

Supported NuGet runtime identifiers:

  • osx-arm64
  • linux-arm64
  • linux-x64
  • win-arm64
  • win-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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • 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.

Version Downloads Last Updated
1.2.3 236 8/17/2026
1.2.2 139 7/28/2026

Lowers the .NET app-host baseline to .NET 8 while preserving native logger generation 1.2.1+f50756ebff0d.