Domore.Logs
11.0.0
dotnet add package Domore.Logs --version 11.0.0
NuGet\Install-Package Domore.Logs -Version 11.0.0
<PackageReference Include="Domore.Logs" Version="11.0.0" />
<PackageVersion Include="Domore.Logs" Version="11.0.0" />
<PackageReference Include="Domore.Logs" />
paket add Domore.Logs --version 11.0.0
#r "nuget: Domore.Logs, 11.0.0"
#:package Domore.Logs@11.0.0
#addin nuget:?package=Domore.Logs&version=11.0.0
#tool nuget:?package=Domore.Logs&version=11.0.0
Domore.Logs is a lightweight, simple, and very opinionated logging library.
Use Logging.For(typeof(MyType)) to obtain an ILog. All library-provided
emission methods and enabled checks contain ordinary managed failures across
manager acquisition, formatting, thresholds, delivery, and lease release.
Emissions return normally on failure; enabled checks return false. Diagnostics
are best-effort writes to stderr. Explicit configuration and completion APIs
continue to validate arguments and report errors to their callers.
Formatter arguments, event handlers, subscriptions, and services are isolated
so one failure does not unnecessarily prevent other arguments or destinations
from being processed. Public logging from a formatter, event, subscription,
service, factory, or diagnostic callback is suppressed, including child work
that carries its execution context. Enabled checks in that context return
false. Unrelated logging continues normally.
Disabled entries are checked before formatting. A null params array produces
one empty line. A custom formatter returning null falls back to normal
formatting. Enumerable arguments expand at most 100 items by default and show
a truncation marker when more items remain. Set the positive
Logging.EnumerableItemLimit to change that bound. Date and time tokens use
invariant Gregorian formatting.
Each service dispatch queue and each file queue defaults to 1,024 pending messages and 8 MiB of retained UTF-16 message text. Both limits must be positive. At capacity, admission rejects the newest message without waiting for space; accepted messages keep their order. Lowering a limit preserves accepted work. Pending totals exclude messages already being processed and object overhead. Dispatch byte totals measure the formatted argument lines; file byte totals measure the rendered messages waiting for disk I/O.
For example, built-in logging configuration can set independent dispatch and file limits:
log[file].type = file
log[file].queue item limit = 1024
log[file].queue byte limit = 8388608
log[file].service.queue item limit = 1024
log[file].service.queue byte limit = 8388608
Logging.GetQueueStatus("file") returns immutable snapshots in DispatchQueue
and, when the service supplies one, ServiceQueue. Each snapshot includes
PendingItemCount, PendingMessageBytes, DroppedItemCount, and
DroppedMessageBytes, plus the current limits. Drop totals are cumulative for
that queue's lifetime. Unknown destination names return null, and reading status
does not construct an unused service. Overload diagnostics are coalesced,
limited to about one report per second, and written asynchronously to stderr.
File LogCountLimit remains the flush batch
size, separate from queue capacity.
Logging.Complete() waits for a full flush, including managers already
retiring. Logging.Complete(timeout) returns false when its single shutdown
deadline expires; safe cleanup continues in the background. Acceptable timeouts
are nonnegative values or TimeSpan.FromMilliseconds(-1) for an infinite wait.
Completion detaches the current manager, waits for active leases, drains
accepted entries, completes services and subscriptions, then disposes resources.
Reentrant completion defers the wait and cannot retire a newer logging session.
Normal process exit has a five-second total shutdown budget.
With Domore.Logs.Conf, built-in ConfigureLogging and Log.Conf.Configure
apply exact log[service].type assignments before other expanded configuration
pairs, preserving order within both groups. This includes pairs from included
files and duplicate assignments. Direct generic Conf.Configure and third-party
containers retain source order. Built-in logging configuration holds one manager
lease for the whole application; watcher errors go to stderr.
The logging containment contract cannot cover exceptions during argument evaluation before invocation or unrecoverable runtime termination. Arbitrary callbacks cannot be safely preempted, and forced termination cannot guarantee flushing.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 is compatible. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net40 is compatible. net403 was computed. net45 is compatible. net451 was computed. net452 was computed. net46 was computed. net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 is compatible. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETCoreApp 3.1
- No dependencies.
-
.NETFramework 4.0
- No dependencies.
-
.NETFramework 4.5
- No dependencies.
-
.NETFramework 4.6.2
- No dependencies.
-
.NETFramework 4.8
- No dependencies.
-
.NETStandard 2.0
- No dependencies.
-
net10.0
- No dependencies.
-
net6.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (29)
Showing the top 5 NuGet packages that depend on Domore.Logs:
| Package | Downloads |
|---|---|
|
Domore.Logs.Conf
Do more logs conf |
|
|
Domore.Release.Core
Do More Release Core |
|
|
Brows.Win32.STAThreadPool
STA thread pool for .NET on Win32. |
|
|
Brows.Composition
Brows Composition |
|
|
Domore.Async.TextReading.Windows
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 11.0.0 | 267 | 10/5/2026 |
| 10.6.4 | 390 | 9/28/2026 |
| 10.6.3 | 128 | 9/28/2026 |
| 10.6.2 | 141 | 9/27/2026 |
| 10.6.1 | 125 | 9/27/2026 |
| 10.6.0 | 139 | 9/27/2026 |
| 10.5.0 | 136 | 9/26/2026 |
| 10.4.0 | 632 | 9/24/2026 |
| 10.3.1 | 250 | 9/18/2026 |
| 10.2.1 | 2,500 | 1/10/2026 |
| 10.2.0 | 216 | 1/10/2026 |
| 10.1.1 | 1,047 | 10/6/2025 |
| 10.1.0 | 369 | 9/22/2025 |
| 10.0.0 | 387 | 9/19/2025 |
| 9.7.0 | 751 | 1/29/2025 |
| 9.6.0 | 304 | 1/29/2025 |
| 9.5.0 | 305 | 1/24/2025 |
| 9.4.0.111 | 313 | 1/15/2025 |
| 9.3.0.110 | 359 | 12/12/2024 |
| 9.2.0.109 | 424 | 9/6/2024 |