LoggerUsage 1.0.0-preview.4

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

dotnet-logging-tools

This library is mostly vibe coded using github-copilot with the Claude Sonnet 4 model in agent mode

Create a summary of which log messages a project writes and the parameters to improve consistency

LoggerUsage LoggerUsage Downloads - Core library for analyzing .NET logging usage patterns

LoggerUsage.Cli LoggerUsage.Cli Downloads - Command-line tool for generating HTML/JSON reports

LoggerUsage.Mcp LoggerUsage.Mcp Downloads - Model Context Protocol server for AI integrations

LoggerUsage.MSBuild LoggerUsage.MSBuild Downloads - MSBuild integration for workspace analysis

Background

This tool analyzes .NET projects to extract and summarize logging usage patterns. It supports the following logging APIs:

Supported Logging APIs

  • ILogger Extension Methods: Analyzes usage of LogInformation, LogWarning, LogError, LogDebug, LogTrace, and LogCritical extension methods
  • LoggerMessage Attribute: Detects and analyzes methods decorated with [LoggerMessage] attribute for high-performance logging
  • LoggerMessage.Define: Analyzes usage of LoggerMessage.Define methods for compile-time log message generation
  • Structured Logging: Captures parameter names and templates used in structured logging scenarios

The tool helps identify:

  • Inconsistent parameter naming across log messages
  • Most commonly used log parameters
  • Log level distribution across your codebase
  • Template patterns and message structures

Advanced Telemetry Features

The tool also provides advanced telemetry analysis capabilities:

  • Custom Tag Names: Detects and tracks custom tag names defined via [TagName] attribute for enhanced structured logging
  • Tag Providers: Analyzes tag providers using [TagProvider] attribute for dynamic tag generation and validates their configuration
  • Data Classification: Identifies data classification attributes (Public, Internal, Private, Sensitive) for compliance and redaction analysis
  • Transitive Properties: Analyzes nested properties when using [LogProperties(Transitive = true)] to track deep object hierarchies

These features enable:

  • Better observability through standardized tag naming
  • Compliance validation for sensitive data logging
  • Understanding of nested property structures in logs
  • Identification of tag provider validation issues

Usage

CLI

create HTML/JSON report:

dotnet run --project src/LoggerUsage.Cli -- <path-to-your-sln-or-csproj> <output-file-name>.<html/json>

Example report:

run the command:

dotnet run --project src/LoggerUsage.Cli -- src/LoggerUsage.Cli/LoggerUsage.Cli.csproj report.html

Logger Usage Report in light mode, showing summary cards, most common parameter names, and parameter name inconsistencies, with a light background and dark text for accessibility.

and in dark mode:

Logger Usage Report in dark mode, showing summary cards, most common parameter names, and parameter name inconsistencies, with a dark background and light text for accessibility.

Report Features

The generated reports include:

Summary Statistics:

  • Total log usages and parameter counts
  • Classification breakdown (Public, Internal, Private, Sensitive)
  • Telemetry features usage (custom tag names, tag providers, transitive properties)
  • Parameter name inconsistencies

Detailed Analysis:

  • Individual log usage details with file locations
  • Custom tag name mappings
  • Tag provider configurations and validation status
  • Nested property hierarchies for transitive analysis
  • Data classification annotations

Output Formats:

  • HTML: Interactive report with collapsible sections, dark mode support, and filtering capabilities
  • JSON: Structured data with schema version 2.0 for programmatic analysis
  • Markdown: Human-readable report suitable for documentation

Running the MCP Server Locally

To run the MCP server locally:

dotnet run --project src/LoggerUsage.Mcp

By default, the server will use the configuration in src/LoggerUsage.Mcp/appsettings.json. You can modify this file to adjust server settings as needed.

Progress Tracking

The MCP server supports progress tracking for long-running analysis operations. Clients can provide a progressToken parameter when calling the analyze_logger_usages_in_csproj tool to receive real-time progress updates.

Example Usage:

{
  "tool": "analyze_logger_usages_in_csproj",
  "parameters": {
    "fullPathToCsproj": "/path/to/project.csproj",
    "progressToken": "my-progress-token-123"
  }
}

When a progressToken is provided, the server will send notifications/progress messages with the following structure:

{
  "method": "notifications/progress",
  "params": {
    "progressToken": "my-progress-token-123",
    "progress": {
      "progress": 25,
      "total": 100,
      "message": "Analyzing project: 25% complete"
    }
  }
}

Features:

  • ✅ Optional parameter (backward compatible - works without progress token)
  • ✅ Real-time progress updates during analysis
  • ✅ Graceful error handling (progress failures don't interrupt analysis)
  • ✅ Low overhead (<5% performance impact)

For more information on MCP progress tracking, see the MCP Progress Documentation.

alt text

Roadmap

  • Add support for ILogger.Log method
  • Add support for ILogger.BeginScope method
  • Create a summary of the log messages
  • Integrate AI to suggest improvements and find inconsistencies
  • For LoggerMessageAttribute - find all invocations of method (see implementation plan)
  • Expose as a MCP
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.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on LoggerUsage:

Package Downloads
LoggerUsage.Mcp

Model Context Protocol server for logging analysis integration with AI tools and IDEs.

LoggerUsage.MSBuild

MSBuild integration library for analyzing logging usage in .NET projects. Provides workspace and compilation utilities for MSBuild-based projects.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0-preview.4 131 11/6/2025
1.0.0-preview.3 126 10/1/2025
1.0.0-preview.2 124 9/29/2025