Evlog 0.0.1-beta

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

Evlog

Wide events structured logging for ASP.NET Core. One comprehensive log event per request instead of scattered log lines.

Quick Start

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddEvlog(options =>
{
    options.Service = "my-api";
    options.Environment = builder.Environment.EnvironmentName;
    options.Pretty = builder.Environment.IsDevelopment();
});

var app = builder.Build();
app.UseEvlog();

Usage

app.MapPost("/api/orders", async (HttpContext context, OrderService orders) =>
{
    var log = context.GetEvlogLogger();

    log.Set(new { User = new { Id = userId, Plan = "premium" } });

    var order = await orders.CreateAsync(userId);
    log.Set(new { Order = new { Id = order.Id, Total = order.Total } });
    log.Info("Order created successfully");

    return Results.Ok(order);
    // Middleware auto-emits the wide event after response
});

Features

  • Wide events: accumulate context throughout a request, emit once
  • Zero-alloc hot path: typed Set() overloads and SetJson() for performance-critical code
  • Ergonomic API: Set(new { ... }) for familiar anonymous object syntax
  • Head + tail sampling: control log volume with per-level rates and keep rules
  • ILogger integration: capture third-party library logs into the wide event
  • Structured errors: EvlogError with Why/Fix fields, auto-mapped to ProblemDetails
  • Pretty dev output: colored, tree-formatted output for local development
Product Compatible and additional computed target framework versions.
.NET 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.
  • net10.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
0.0.1-beta 49 3/3/2026