From f0b45115dd058592c097c1708e880dea203458d1 Mon Sep 17 00:00:00 2001 From: Matt Parker <61717342+MattParkerDev@users.noreply.github.com> Date: Thu, 13 Nov 2025 00:06:17 +1000 Subject: [PATCH] Simplify terminal logger creation --- .../Logging/InternalTerminalLoggerFactory.cs | 27 +++++-------------- .../SharpIDE.Application.csproj | 1 + 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/src/SharpIDE.Application/Features/Logging/InternalTerminalLoggerFactory.cs b/src/SharpIDE.Application/Features/Logging/InternalTerminalLoggerFactory.cs index dc02293..036ca7e 100644 --- a/src/SharpIDE.Application/Features/Logging/InternalTerminalLoggerFactory.cs +++ b/src/SharpIDE.Application/Features/Logging/InternalTerminalLoggerFactory.cs @@ -1,5 +1,5 @@ -using System.Reflection; -using Microsoft.Build.Framework; +using Microsoft.Build.Framework; +using Microsoft.Build.Logging; namespace SharpIDE.Application.Features.Logging; @@ -11,30 +11,17 @@ public class InternalTerminalLoggerFactory return logger; } - public static ILogger CreateLogger(string parameters, LoggerVerbosity loggerVerbosity) + private static ILogger CreateLogger(string parameters, LoggerVerbosity loggerVerbosity) { - var type = Type.GetType("Microsoft.Build.Logging.TerminalLogger, Microsoft.Build"); - - if (type == null) throw new Exception("TerminalLogger type not found"); - - var method = type.GetMethod( - "CreateTerminalOrConsoleLogger", - BindingFlags.NonPublic | BindingFlags.Static); - - if (method == null) throw new Exception("CreateTerminalOrConsoleLogger method not found"); - string[]? args = []; bool supportsAnsi = true; bool outputIsScreen = true; uint? originalConsoleMode = 0x0007; - object? logger = method.Invoke( - obj: null, - parameters: [args, supportsAnsi, outputIsScreen, originalConsoleMode]); + var logger = TerminalLogger.CreateTerminalOrConsoleLogger(args, supportsAnsi, outputIsScreen, originalConsoleMode); - var castLogger = (ILogger)logger!; - castLogger.Parameters = parameters; - castLogger.Verbosity = loggerVerbosity; - return castLogger; + logger.Parameters = parameters; + logger.Verbosity = loggerVerbosity; + return logger; } } diff --git a/src/SharpIDE.Application/SharpIDE.Application.csproj b/src/SharpIDE.Application/SharpIDE.Application.csproj index a3a23e1..538d95f 100644 --- a/src/SharpIDE.Application/SharpIDE.Application.csproj +++ b/src/SharpIDE.Application/SharpIDE.Application.csproj @@ -19,6 +19,7 @@ +