ExileCore2CustomLogger 1.0.4

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

Logger

A simple ImGui-based logger class library designed specifically for ExileCore2 plugins. This is not a standalone logging solution and requires ExileCore2 and ImGui.NET to function.

Features

  • ImGui-based visual logging window
  • Multiple log levels (Debug, Info, Warning, Error)
  • Color-coded log entries
  • Thread-safe logging using ConcurrentQueue
  • Auto-scrolling to latest log entries
  • Maximum entry limit to prevent memory issues
  • Pause/Resume logging functionality
  • Log level filtering via dropdown
  • JSON object logging support
  • Buffer size monitoring
  • Clear log functionality
  • Seamless integration with ExileCore2's ImGui implementation

Requirements

  • .NET 8.0
  • ImGui.NET (1.91.6.1 or higher)
  • Newtonsoft.Json (13.0.3 or higher)
  • ExileCore2 environment

Installation

  1. Add the project as a reference to your ExileCore2 plugin
  2. Or install via NuGet: dotnet add package ExileCore2CustomLogger

Basic Usage

// import the logger namespace
using Logger = ExileCore2CustomLogger.Logger;
// Initialize the logger with custom log level and max entries
var logLevel = LogLevel.Debug; 
// or from ExileCore2 Settings
var logLevel = (LogLevel)Settings.LogLevel.Value;

var logger = new Logger(logLevel, maxEntries: 2000);

// Log messages
logger.Debug("Debug message");
logger.Info("Info message");
logger.Warning("Warning message");
logger.Error("Error message");

// Log object as formatted JSON
var myObject = new { Name = "Test", Value = 123 };
logger.LogJson(myObject);


// Render the logger window (typically in your plugin's Render method)
public override void Render()
{
    if (Settings.Debug.ShowWindow)
    {
        logger.Render();
    }
}

Configuration

The logger can be initialized with custom log level and maximum entries:

// Default: LogLevel.Info, 1000 entries
var logger = new Logger();
var logLevel = LogLevel.Debug;

// Custom configuration
var logger = new Logger(LogLevel.Debug, maxEntries: 2000);

UI Controls

  • Clear: Clears all log entries
  • Pause/Resume: Freezes the log display for easier reading
  • Auto-scroll: Automatically scrolls to newest entries
  • Log Level: Dropdown to filter minimum log level
  • Buffer Size: Shows current/maximum entry count

License

MIT License

Credits

Created for use with ExileCore2 plugins.

Product 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 was computed.  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

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 332 2/6/2025
1.0.2 166 2/6/2025 1.0.2 is deprecated.
1.0.1 169 2/4/2025 1.0.1 is deprecated.
1.0.0 184 2/4/2025 1.0.0 is deprecated.