LumiLogger 1.2.0
dotnet add package LumiLogger --version 1.2.0
NuGet\Install-Package LumiLogger -Version 1.2.0
<PackageReference Include="LumiLogger" Version="1.2.0" />
<PackageVersion Include="LumiLogger" Version="1.2.0" />
<PackageReference Include="LumiLogger" />
paket add LumiLogger --version 1.2.0
#r "nuget: LumiLogger, 1.2.0"
#:package LumiLogger@1.2.0
#addin nuget:?package=LumiLogger&version=1.2.0
#tool nuget:?package=LumiLogger&version=1.2.0
LumiLog ✨
Beautiful HTML execution logger for .NET & ASP.NET Core with structured logging and real-time search.
☕ Support & Connect
If you find LumiLog helpful, please consider supporting the project:
- Buy Me a Coffee: https://buymeacoffee.com/pankajkumarr ☕
- GitHub Repository: https://github.com/pankaj-Kumarr/LumiLog ⭐
- Questions or Support: pankajgu00@gmail.com 📧
LumiLog automatically generates interactive HTML logs for:
- Controller actions
- Service methods
- Background jobs
- Manual execution scopes
- Structured data logging with properties
Perfect for debugging, monitoring, and development visibility.
🚀 Installation
dotnet add package LumiLogger
⚙️ Basic Setup (ASP.NET Core)
In Program.cs:
using LumiLog.Extensions;
builder.Services.AddLumiLogger(options =>
{
options.Theme = Theme.dark; // light, dark, pink, blue, red, purple, grey, orange
options.LogFolder = "logs";
});
// Option 1: With MVC Action Filter
builder.Services.AddLumiLoggerWithMvc();
// Option 2: With Microsoft.Extensions.Logging integration
builder.Logging.AddLumiLog(Microsoft.Extensions.Logging.LogLevel.Information);
🏷️ Attribute-Based Logging
[HttpPost("send-otp")]
[LumiLog]
public async Task<IActionResult> SendOtp(string phone)
{
return Ok("OTP sent");
}
📝 Manual Execution Logging
// Using Execute
_logger.Execute("ProcessOrder", () =>
{
_logger.Log("Validating order...");
_logger.Log("Processing payment...");
});
// Using ExecuteAsync
await _logger.ExecuteAsync("FetchData", async () =>
{
_logger.Log("Fetching from API...");
await Task.Delay(1000);
});
📊 Structured Logging (New!)
Log complex data with properties that render as collapsible JSON:
_logger.LogStructured("OrderCreated", new Dictionary<string, object?>
{
{ "OrderId", 12345 },
{ "Amount", 99.99 },
{ "Customer", "John Doe" },
{ "Items", new[] { "Item1", "Item2" } }
}, LogLevel.Information);
// With different log levels
_logger.LogStructured("Payment Failed", new Dictionary<string, object?>
{
{ "PaymentId", 456 },
{ "Reason", "Insufficient funds" }
}, LogLevel.Error);
🔍 Client-Side Search & Filter
- Real-time search by method name, status, time, or log content
- Search box automatically filters all execution logs
- "No results" message when nothing matches
📄 Microsoft.Extensions.Logging Integration (New!)
Use LumiLog as a sink for Microsoft's standard logging:
var logger = serviceProvider.GetRequiredService<ILogger<MyClass>>();
logger.LogInformation("User logged in", new { UserId = 123, Timestamp = DateTime.Now });
logger.LogError(ex, "Payment processing failed");
logger.LogWarning("Low inventory detected");
📂 Log Output
Logs are saved as HTML files in:
<ProjectRoot>/logs/YYYY-MM-DD.html
Each day creates a new log file. Each request/execution creates an interactive card with:
- Execution time
- Success/Failure status
- Internal logs
- Exception details
- Structured data (collapsible JSON)
💡 Key Features
✅ Zero configuration required
✅ Beautiful HTML output with multiple themes
✅ Attribute-based or manual logging
✅ Structured logging with JSON rendering
✅ Client-side search & filtering
✅ Microsoft.Extensions.Logging integration
✅ Full .NET 8 & .NET 10 support
✅ No external dependencies
📄 License
MIT License
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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 was computed. 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
- Microsoft.AspNetCore.Mvc.Abstractions (>= 2.3.9)
- Microsoft.AspNetCore.Mvc.Core (>= 2.3.9)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
-
net8.0
- Microsoft.AspNetCore.Mvc.Abstractions (>= 2.1.0)
- Microsoft.AspNetCore.Mvc.Core (>= 2.1.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.