LogBurrow.Abstractions
0.1.0
dotnet add package LogBurrow.Abstractions --version 0.1.0
NuGet\Install-Package LogBurrow.Abstractions -Version 0.1.0
<PackageReference Include="LogBurrow.Abstractions" Version="0.1.0" />
<PackageVersion Include="LogBurrow.Abstractions" Version="0.1.0" />
<PackageReference Include="LogBurrow.Abstractions" />
paket add LogBurrow.Abstractions --version 0.1.0
#r "nuget: LogBurrow.Abstractions, 0.1.0"
#:package LogBurrow.Abstractions@0.1.0
#addin nuget:?package=LogBurrow.Abstractions&version=0.1.0
#tool nuget:?package=LogBurrow.Abstractions&version=0.1.0
LogBurrow
High-performance, asynchronous .NET logging provider that offloads log delivery to RabbitMQ and stores them as structured documents in MongoDB. Minimizes application overhead and ensures reliable log ingestion.
How it works
your app ──ILogger──▶ MessageBusLogger ──LogEvent──▶ RabbitMQ (logs-queue) ──▶ LogBurrow.Worker ──▶ MongoDB
The producing application only references LogBurrow.Logging. It plugs a custom
ILoggerProvider into the standard Microsoft.Extensions.Logging pipeline, so every
ILogger call is turned into a LogEvent and published to the bus. If the broker is
unreachable the event is written to the console instead, so nothing is silently dropped.
A separate worker drains the queue and persists each entry into MongoDB (one collection
per log level).
Projects
src/
BuildingBlocks/
Abstractions
EventBus.RabbitMq
Logging
Persistence.Mongo
Services/
Worker
LogBurrow.sln
Project and folder names carry no prefix; assemblies and namespaces stay under
LogBurrow.* (e.g. Abstractions builds LogBurrow.Abstractions.dll).
| Project | Purpose |
|---|---|
BuildingBlocks/Abstractions |
Shared contracts: LogEvent, ILog, connection settings, QueueNames, DateTimeProvider. No third-party dependencies beyond configuration binding. |
BuildingBlocks/EventBus.RabbitMq |
Thin MassTransit/RabbitMQ wrapper: publisher/consumer registration, IMessageBusProvider<TBus>, base consumers, health-gated startup. |
BuildingBlocks/Logging |
The pluggable logging provider (MessageBusLogger, MessageBusLoggerProvider, AddMessageBusLogging). This is the only package a producing app needs. |
BuildingBlocks/Persistence.Mongo |
LogEntity, Mongo context and ILogRepository with the AddMongoLogStore registration. |
Services/Worker |
Background service that consumes LogEvent from logs-queue and writes it through ILogRepository. |
Usage — producing application
builder.Logging
.ClearProviders()
.AddMessageBusLogging(
connection: builder.Configuration.GetConfiguration<RabbitMqConnection>());
// optional: block startup until the logging bus is confirmed healthy
await app.AwaitLoggerMessageBus().RunAsync();
{
"Logging": {
"LogLevel": { "Default": "None" },
"MessageBusLogging": {
"LogLevel": { "Default": "Warning", "MassTransit": "Error" }
}
},
"RabbitMqConnection": {
"HostData": { "HostName": "localhost", "Port": 5672 },
"VirtualHost": "/",
"Credentials": { "Username": "guest", "Password": "guest" }
}
}
MessageBusLogging is the provider alias — use it under Logging to control which
levels this provider forwards, independently of the other providers.
Usage — running the sink
LogBurrow.Worker reads RabbitMqConnection and MongoDbConnection from configuration
(see src/Services/Worker/appsettings.json) and can run as a container or a service.
dotnet run --project src/Services/Worker
Packages
The BuildingBlocks projects are published as NuGet packages (Services/Worker is not
packable). Package ids keep the LogBurrow. prefix:
| Package | You need it when |
|---|---|
LogBurrow.Logging |
producing app — the plug-in provider (pulls LogBurrow.Abstractions + LogBurrow.EventBus.RabbitMq) |
LogBurrow.Persistence.Mongo |
building your own sink |
LogBurrow.EventBus.RabbitMq |
building your own publisher/consumer on the same bus |
LogBurrow.Abstractions |
sharing just the LogEvent contract |
Consume
dotnet add package LogBurrow.Logging
Shared metadata and the single VersionPrefix live in src/Directory.Build.props.
Build & pack locally
dotnet build src/LogBurrow.sln
dotnet pack src/LogBurrow.sln -c Release -o artifacts
.nupkg + .snupkg land in artifacts/. To test against a consumer before publishing,
add that folder as a source:
dotnet nuget add source "$(pwd)/artifacts" -n logburrow-local
Publish
CI mirrors the Telegram.Wallet.Pay.Dotnet layout:
| Workflow | Trigger | What it does |
|---|---|---|
.github/workflows/logburrow-library.yml |
push / PR to develop (or manual) |
restore + build src/LogBurrow.sln |
.github/workflows/logburrow-library-pack.yml |
PR merged into master (or manual workflow_dispatch) |
runs the composite/pack-push action |
.github/workflows/composite/pack-push/action.yml |
— | auto-bumps a v* git tag (anothrNick/github-tag-action), packs every BuildingBlocks project with that version and dotnet nuget pushes all *.nupkg (+ *.snupkg) to NuGet.org |
Required repository secrets: NUGET_TOKEN (NuGet.org API key) and TOKEN (a PAT with
repo scope, used to push the version tag). Control the bump with #patch / #minor /
#major in a commit message; default is minor.
Manual push:
dotnet nuget push "artifacts/*.nupkg" --api-key <KEY> --source https://api.nuget.org/v3/index.json --skip-duplicate
Targets .NET 8.
| 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
- Microsoft.Extensions.Configuration.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.1)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on LogBurrow.Abstractions:
| Package | Downloads |
|---|---|
|
LogBurrow.EventBus.RabbitMq
LogBurrow's thin MassTransit/RabbitMQ wrapper: publisher and consumer registration, IMessageBusProvider<TBus>, base consumers and health-gated startup. |
|
|
LogBurrow.Persistence.Mongo
MongoDB store for LogBurrow log events: LogEntity, the Mongo context and ILogRepository with the AddMongoLogStore() registration. Use it to build a custom sink. |
|
|
LogBurrow.Logging
Pluggable Microsoft.Extensions.Logging provider that ships log entries to RabbitMQ as structured LogEvent messages, with a console fallback when the broker is unreachable. This is the package a producing application references. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0 | 168 | 8/30/2026 |