LogToHtml 1.0.4

.NET 5.0
Install-Package LogToHtml -Version 1.0.4
dotnet add package LogToHtml --version 1.0.4
<PackageReference Include="LogToHtml" Version="1.0.4" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add LogToHtml --version 1.0.4
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: LogToHtml, 1.0.4"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install LogToHtml as a Cake Addin
#addin nuget:?package=LogToHtml&version=1.0.4

// Install LogToHtml as a Cake Tool
#tool nuget:?package=LogToHtml&version=1.0.4
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Log2Html

A small library to write (error) logs to a .html file. The html file's structure is based of an embedded .cshtml file.

Currently tested working on Linux & Windows.

Usage

Write a log

using Log2Html;

class Program
{
    public static Logging.Options options = new()
    {
        Projects = new List<string>()
        {
            $"{Assembly.GetCallingAssembly().GetName().Name}"
        },
        Project = $"{Assembly.GetCallingAssembly().GetName().Name}",
        LogToConsole = true
    };

    static void Main(string[] args)
    {
        Logging.Log(options, Logging.LogType.Warn, "Testing");
    }
}

Retrieve written logs

//Returns lists with errors all of different log levels written
var logs = Logging.GetLogs();

Options

public static Logging.Options options = new()
{
    Projects = new List<string>()
    {
        $"{Assembly.GetCallingAssembly().GetName().Name}"
    },
    Project = $"{Assembly.GetCallingAssembly().GetName().Name}",
    Date = DateTime.UtcNow,
    FilePath = Path.Combine(Environment.CurrentDirectory, "logging", "loggin.html"),
    LogToConsole = true
};
  1. Projects: A list of projects within the solution (so you can write different logs for each project).
  2. Project: name of current project that is being used for logging (change this option for each solution obviously).
  3. Date: DateTime format you want to be used in the logs (default is DateTime.UtcNow).
  4. FilePath: The path you want the file to be written to and it's name.
  5. LogToConsole: Boolean indicating wether or not you want the library to also write to the console.

Performance

Currently if you're just writing a log every so often performance is fine but if you write a massive amount to it (300-1000+) it will slow down significantly. I do know ways to make the library faster but currently do not have time to implement these.

Libraries

Log2Html utilizes:

  1. RazorLight to read embedded .cshtml and convert it to string
  2. Html Agility Pack to read and write to the .html file
  3. ΛngleSharp to format the HTML
  4. Pastel to write colors to the console
Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

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
1.0.4 205 12/1/2021
1.0.3 171 10/12/2021
1.0.2 186 9/29/2021
1.0.1 113 9/29/2021
1.0.0 92 9/28/2021

Removed some "href" attributes on "dropdown-nav-item" items so that the log file can be embedded within another page without causing issues.