mirror of
https://github.com/WerWolv/ImHex.git
synced 2026-03-30 21:05:56 -05:00
feat: Added logger module to script loader
This commit is contained in:
@@ -1,6 +1,4 @@
|
||||
#pragma warning disable SYSLIB1054
|
||||
|
||||
using System.Drawing;
|
||||
using System.Drawing;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
using ImHex;
|
||||
|
||||
public class Library
|
||||
{
|
||||
public static void Initialize()
|
||||
{
|
||||
Logger.RedirectConsole();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
#pragma warning disable SYSLIB1054
|
||||
|
||||
namespace ImHex
|
||||
{
|
||||
public partial class Logger
|
||||
{
|
||||
[LibraryImport("ImHex")]
|
||||
private static partial void logPrintV1(byte[] message);
|
||||
|
||||
[LibraryImport("ImHex")]
|
||||
private static partial void logPrintlnV1(byte[] message);
|
||||
|
||||
[LibraryImport("ImHex")]
|
||||
private static partial void logDebugV1(byte[] message);
|
||||
|
||||
[LibraryImport("ImHex")]
|
||||
private static partial void logInfoV1(byte[] message);
|
||||
|
||||
[LibraryImport("ImHex")]
|
||||
private static partial void logWarnV1(byte[] message);
|
||||
|
||||
[LibraryImport("ImHex")]
|
||||
private static partial void logErrorV1(byte[] message);
|
||||
|
||||
[LibraryImport("ImHex")]
|
||||
private static partial void logFatalV1(byte[] message);
|
||||
|
||||
|
||||
public static void Debug(string message)
|
||||
{
|
||||
logDebugV1(Encoding.UTF8.GetBytes(message));
|
||||
}
|
||||
|
||||
public static void Info(string message)
|
||||
{
|
||||
logInfoV1(Encoding.UTF8.GetBytes(message));
|
||||
}
|
||||
|
||||
public static void Warn(string message)
|
||||
{
|
||||
logWarnV1(Encoding.UTF8.GetBytes(message));
|
||||
}
|
||||
|
||||
public static void Error(string message)
|
||||
{
|
||||
logErrorV1(Encoding.UTF8.GetBytes(message));
|
||||
}
|
||||
|
||||
public static void Fatal(string message)
|
||||
{
|
||||
logFatalV1(Encoding.UTF8.GetBytes(message));
|
||||
}
|
||||
|
||||
|
||||
private class LoggerWriter : TextWriter
|
||||
{
|
||||
public override Encoding Encoding => Encoding.UTF8;
|
||||
|
||||
public override void Write(string? value)
|
||||
{
|
||||
logPrintV1(Encoding.GetBytes(value ?? string.Empty));
|
||||
}
|
||||
|
||||
public override void WriteLine(string? value)
|
||||
{
|
||||
logPrintlnV1(Encoding.GetBytes(value ?? string.Empty));
|
||||
}
|
||||
}
|
||||
|
||||
public static void RedirectConsole()
|
||||
{
|
||||
Console.SetOut(new LoggerWriter());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,4 @@
|
||||
#pragma warning disable SYSLIB1054
|
||||
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace ImHex
|
||||
|
||||
Reference in New Issue
Block a user