OutWit.Common.Logging.Query
1.0.0
dotnet add package OutWit.Common.Logging.Query --version 1.0.0
NuGet\Install-Package OutWit.Common.Logging.Query -Version 1.0.0
<PackageReference Include="OutWit.Common.Logging.Query" Version="1.0.0" />
<PackageVersion Include="OutWit.Common.Logging.Query" Version="1.0.0" />
<PackageReference Include="OutWit.Common.Logging.Query" />
paket add OutWit.Common.Logging.Query --version 1.0.0
#r "nuget: OutWit.Common.Logging.Query, 1.0.0"
#:package OutWit.Common.Logging.Query@1.0.0
#addin nuget:?package=OutWit.Common.Logging.Query&version=1.0.0
#tool nuget:?package=OutWit.Common.Logging.Query&version=1.0.0
OutWit.Common.Logging.Query
Vendor-neutral log query model and provider abstraction. Lets any application talk to a log backend (NewRelic, Loki, on-disk files, …) through a single interface, swapping concrete implementations without touching the consumer code.
Contents
Interface
ILogQueryProvider— eight async methods covering:QueryAsync(LogQuery)— full query with filters / time / pagingGetLogsAsync(from, to, filters)/GetRecentLogsAsync(lookback, filters)— convenience shortcutsSearchAsync(text, lookback)— free-text message searchGetDistinctValuesAsync(from, to, attribute)— facet values for filter dropdownsFindOffsetAsync(query, timestamp)— scroll-to-timestampGetStatisticsAsync(from, to, filters)— per-level countsGetStorageInfoAsync()— used bytes / quota / total entries / vendor-specific breakdown
Model (OutWit.Common.Logging.Query.Model)
LogQuery/LogPage/LogEntry/LogFilter(+ factory helpersLogFilter.Eq/NotEq/Contains/...)LogStatistics— per-level counts with computed ratesLogStorageInfo— neutral storage view (UsedBytes,LimitBytes,TotalEntries,PeriodFrom/To,Breakdownfor vendor extras)- Enums:
LogFilterOperator,LogSortOrder,LogSeverity(Trace..Fatal),LogAttribute(canonical names + per-vendor aliases) LogFiltersstatic helpers —LevelEquals(LogSeverity),MessageContains(text),ServiceEquals(name), etc.
All model types inherit ModelBase (value-comparison via Is(), immutable updates via With()) and are MemoryPack-friendly for WitRPC transport.
Backends
| Backend | Package |
|---|---|
| NewRelic (NerdGraph / NRQL) | OutWit.Common.Logging.NewRelic |
| Grafana Loki (HTTP / LogQL) | OutWit.Common.Logging.Loki |
| Local Serilog JSON files | planned for OutWit.Shared.Logging.File |
Usage
// Register a vendor-specific impl in DI:
services.AddSingleton<ILogQueryProvider, NewRelicLogQueryProvider>(); // or LokiLogQueryProvider, ...
// Consume the neutral interface anywhere in your app:
public sealed class LogsViewModel
{
public LogsViewModel(ILogQueryProvider logs) { ... }
private async Task LoadAsync()
{
var page = await m_logs.GetRecentLogsAsync(
TimeSpan.FromHours(1),
filters: [LogFilters.LevelAtLeast(LogSeverity.Warning)]);
Entries = page.Items;
}
}
License
Apache 2.0 — see LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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 is compatible. 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 is compatible. 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. |
-
net10.0
- OutWit.Common (>= 1.3.2)
- OutWit.Common.MemoryPack (>= 1.1.4)
-
net6.0
- OutWit.Common (>= 1.3.2)
- OutWit.Common.MemoryPack (>= 1.1.4)
-
net7.0
- OutWit.Common (>= 1.3.2)
- OutWit.Common.MemoryPack (>= 1.1.4)
-
net8.0
- OutWit.Common (>= 1.3.2)
- OutWit.Common.MemoryPack (>= 1.1.4)
-
net9.0
- OutWit.Common (>= 1.3.2)
- OutWit.Common.MemoryPack (>= 1.1.4)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on OutWit.Common.Logging.Query:
| Package | Downloads |
|---|---|
|
OutWit.Common.Logging.NewRelic
NewRelic NerdGraph log query backend for OutWit.Common.Logging.Query. Implements ILogQueryProvider over NRQL (search, statistics, distinct values, scroll-to-timestamp) and adds NewRelic-specific billing data via INewRelicProvider. |
|
|
OutWit.Common.Logging.Loki
Grafana Loki log query backend for OutWit.Common.Logging.Query. Implements ILogQueryProvider via LogQL over the /loki/api/v1 HTTP endpoints (query_range, count_over_time, label values). Supports basic auth and X-Scope-OrgID multi-tenancy. |
|
|
OutWit.Identity.Contracts
Data contracts for WitIdentity administration — application management, dashboard, invitations, and result types. 2.0 swaps vendor-specific NewRelic log models for the neutral OutWit.Common.Logging.Query shape; consumers built against 1.x need to retarget. |
|
|
OutWit.Shared.Logging.Providers
Plugin contract for OutWit log query providers. Defines ILogProviderPlugin (a marker over IWitPlugin) so a host can load NewRelic / Loki / file-scanning log backends via WitPluginLoader. Also defines HostLoggingInfo — a documented side-channel that lets file-scanning plugins discover the host's log directory without duplicating Serilog config. |
|
|
OutWit.Shared.Logging.Blazor
Blazor WebAssembly log viewer components built on MudBlazor. Toolbar, filter tree, table, and detail panel that consume any OutWit ILogQueryProvider — works with the NewRelic, Loki, and File log provider plugins under OutWit.Shared.Logging.Provider.*. Static assets served at _content/OutWit.Shared.Logging.Blazor/. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 237 | 5/13/2026 |