LogToHtml 1.0.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package LogToHtml --version 1.0.2                
NuGet\Install-Package LogToHtml -Version 1.0.2                
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="LogToHtml" Version="1.0.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add LogToHtml --version 1.0.2                
#r "nuget: LogToHtml, 1.0.2"                
#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.
// Install LogToHtml as a Cake Addin
#addin nuget:?package=LogToHtml&version=1.0.2

// Install LogToHtml as a Cake Tool
#tool nuget:?package=LogToHtml&version=1.0.2                

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 Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
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
2.0.1 422 1/9/2023
2.0.0 332 11/29/2022
1.0.4 309 12/1/2021
1.0.3 253 10/12/2021
1.0.2 251 9/29/2021
1.0.1 188 9/29/2021
1.0.0 161 9/28/2021

Added a readme