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
                    
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="OutWit.Common.Logging.Query" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OutWit.Common.Logging.Query" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="OutWit.Common.Logging.Query" />
                    
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 OutWit.Common.Logging.Query --version 1.0.0
                    
#r "nuget: OutWit.Common.Logging.Query, 1.0.0"
                    
#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 OutWit.Common.Logging.Query@1.0.0
                    
#: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=OutWit.Common.Logging.Query&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=OutWit.Common.Logging.Query&version=1.0.0
                    
Install as a Cake Tool

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 / paging
    • GetLogsAsync(from, to, filters) / GetRecentLogsAsync(lookback, filters) — convenience shortcuts
    • SearchAsync(text, lookback) — free-text message search
    • GetDistinctValuesAsync(from, to, attribute) — facet values for filter dropdowns
    • FindOffsetAsync(query, timestamp) — scroll-to-timestamp
    • GetStatisticsAsync(from, to, filters) — per-level counts
    • GetStorageInfoAsync() — used bytes / quota / total entries / vendor-specific breakdown

Model (OutWit.Common.Logging.Query.Model)

  • LogQuery / LogPage / LogEntry / LogFilter (+ factory helpers LogFilter.Eq/NotEq/Contains/...)
  • LogStatistics — per-level counts with computed rates
  • LogStorageInfo — neutral storage view (UsedBytes, LimitBytes, TotalEntries, PeriodFrom/To, Breakdown for vendor extras)
  • Enums: LogFilterOperator, LogSortOrder, LogSeverity (Trace..Fatal), LogAttribute (canonical names + per-vendor aliases)
  • LogFilters static 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (7)

Showing the top 5 NuGet packages that depend on OutWit.Common.Logging.Query:

Package Downloads
OutWit.Shared.Logging.Provider.Loki

Grafana Loki log provider plugin for OutWit hosts. Thin wrapper over OutWit.Common.Logging.Loki — registers an ILogQueryProvider that translates neutral LogQuery requests into LogQL and dispatches them against /loki/api/v1/*. Drop into the host's @Logging folder and set Logging__ProviderKey=Loki.

OutWit.Shared.Logging.Provider.NewRelic

NewRelic NerdGraph log provider plugin for OutWit hosts. Thin wrapper over OutWit.Common.Logging.NewRelic — registers an ILogQueryProvider that queries NewRelic Logs via NRQL. Drop into the host's @Logging folder and set Logging__ProviderKey=NewRelic.

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.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 316 5/13/2026