LoggerUsage 1.0.0-preview.4
dotnet add package LoggerUsage --version 1.0.0-preview.4
NuGet\Install-Package LoggerUsage -Version 1.0.0-preview.4
<PackageReference Include="LoggerUsage" Version="1.0.0-preview.4" />
<PackageVersion Include="LoggerUsage" Version="1.0.0-preview.4" />
<PackageReference Include="LoggerUsage" />
paket add LoggerUsage --version 1.0.0-preview.4
#r "nuget: LoggerUsage, 1.0.0-preview.4"
#:package LoggerUsage@1.0.0-preview.4
#addin nuget:?package=LoggerUsage&version=1.0.0-preview.4&prerelease
#tool nuget:?package=LoggerUsage&version=1.0.0-preview.4&prerelease
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
- Core library for analyzing .NET logging usage patterns
- Command-line tool for generating HTML/JSON reports
- Model Context Protocol server for AI integrations
- 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, andLogCriticalextension methods - LoggerMessage Attribute: Detects and analyzes methods decorated with
[LoggerMessage]attribute for high-performance logging - LoggerMessage.Define: Analyzes usage of
LoggerMessage.Definemethods 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
and in dark mode:
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.
Roadmap
- Add support for
ILogger.Logmethod - Add support for
ILogger.BeginScopemethod - 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 | Versions 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. |
-
net10.0
- Microsoft.CodeAnalysis.CSharp.Workspaces (>= 4.14.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.9)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.9)
- Microsoft.Extensions.Telemetry.Abstractions (>= 9.9.0)
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 |