From 296dbf53090e5d93d0e1b64a2f1960166135fef0 Mon Sep 17 00:00:00 2001 From: Andrei Tudor Date: Tue, 6 May 2025 16:46:51 +0300 Subject: [PATCH] Updated logger --- .../DiscordBotCore.Configuration.csproj | 1 + .../DiscordBotCore.Database.Sqlite.csproj | 1 + .../DiscordBotCore.Logging.csproj | 1 + DiscordBotCore.Logging/ILogger.cs | 2 +- DiscordBotCore.Logging/Logger.cs | 23 ++-- .../DiscordBotCore.Networking.csproj | 1 + .../DiscordBotCore.PluginCore.csproj | 1 + ...ordBotCore.PluginManagement.Loading.csproj | 1 + .../DiscordBotCore.PluginManagement.csproj | 1 + .../DiscordBotCore.Utilities.csproj | 1 + .../DiscordBotCore.WebApplication.csproj | 1 + DiscordBotCore.WebApplication/Initializer.cs | 13 +- DiscordBotCore/DiscordBotCore.csproj | 3 +- .../CppCompatibilityModule.csproj | 1 + Plugins/LevelingSystem/LevelingSystem.csproj | 1 + Plugins/MusicPlayer/MusicPlayer.csproj | 7 +- SethDiscordBot.sln | 116 ++++++++++++++++++ WebUI/Components/Pages/Home.razor | 14 +-- WebUI/WebUI.csproj | 1 + 19 files changed, 160 insertions(+), 30 deletions(-) diff --git a/DiscordBotCore.Configuration/DiscordBotCore.Configuration.csproj b/DiscordBotCore.Configuration/DiscordBotCore.Configuration.csproj index 72603a2..51bcd3d 100644 --- a/DiscordBotCore.Configuration/DiscordBotCore.Configuration.csproj +++ b/DiscordBotCore.Configuration/DiscordBotCore.Configuration.csproj @@ -4,6 +4,7 @@ net8.0 enable enable + AnyCPU;x64;ARM64 diff --git a/DiscordBotCore.Database.Sqlite/DiscordBotCore.Database.Sqlite.csproj b/DiscordBotCore.Database.Sqlite/DiscordBotCore.Database.Sqlite.csproj index 7303696..3790f79 100644 --- a/DiscordBotCore.Database.Sqlite/DiscordBotCore.Database.Sqlite.csproj +++ b/DiscordBotCore.Database.Sqlite/DiscordBotCore.Database.Sqlite.csproj @@ -4,6 +4,7 @@ net8.0 enable enable + AnyCPU;x64;ARM64 diff --git a/DiscordBotCore.Logging/DiscordBotCore.Logging.csproj b/DiscordBotCore.Logging/DiscordBotCore.Logging.csproj index 3a63532..e25dbbd 100644 --- a/DiscordBotCore.Logging/DiscordBotCore.Logging.csproj +++ b/DiscordBotCore.Logging/DiscordBotCore.Logging.csproj @@ -4,6 +4,7 @@ net8.0 enable enable + AnyCPU;x64;ARM64 diff --git a/DiscordBotCore.Logging/ILogger.cs b/DiscordBotCore.Logging/ILogger.cs index ff6fe7e..de0c04a 100644 --- a/DiscordBotCore.Logging/ILogger.cs +++ b/DiscordBotCore.Logging/ILogger.cs @@ -2,6 +2,7 @@ public interface ILogger { + List LogMessages { get; protected set; } event Action? OnLogReceived; void Log(string message); @@ -9,5 +10,4 @@ public interface ILogger void Log(string message, object sender); void Log(string message, object sender, LogType type); void LogException(Exception exception, object sender, bool logFullStack = false); - } \ No newline at end of file diff --git a/DiscordBotCore.Logging/Logger.cs b/DiscordBotCore.Logging/Logger.cs index c8f797c..ab681f8 100644 --- a/DiscordBotCore.Logging/Logger.cs +++ b/DiscordBotCore.Logging/Logger.cs @@ -4,28 +4,26 @@ public sealed class Logger : ILogger { private readonly string _LogFile; private readonly string _LogMessageFormat; + private readonly int _MaxHistorySize; private readonly List _logMessageProperties = typeof(ILogMessage) .GetProperties() .Select(p => p.Name) .ToList(); - - - + + + public List LogMessages { get; set; } public event Action? OnLogReceived; - public Logger(string logFolder, string logMessageFormat) + public Logger(string logFolder, string logMessageFormat, int maxHistorySize) { this._LogMessageFormat = logMessageFormat; this._LogFile = Path.Combine(logFolder, $"{DateTime.Now:yyyy-MM-dd}.log"); + this._MaxHistorySize = maxHistorySize; + LogMessages = new List(); } - - /// - /// Generate a formatted string based on the default parameters of the ILogMessage and a string defined as model - /// - /// The message - /// A formatted string with the message values + private string GenerateLogMessage(ILogMessage message) { string messageAsString = new string(_LogMessageFormat); @@ -48,6 +46,11 @@ public sealed class Logger : ILogger { var messageAsString = GenerateLogMessage(message); OnLogReceived?.Invoke(message); + LogMessages.Add(message); + if (LogMessages.Count > _MaxHistorySize) + { + LogMessages.RemoveAt(0); + } await LogToFile(messageAsString); } diff --git a/DiscordBotCore.Networking/DiscordBotCore.Networking.csproj b/DiscordBotCore.Networking/DiscordBotCore.Networking.csproj index 3a63532..e25dbbd 100644 --- a/DiscordBotCore.Networking/DiscordBotCore.Networking.csproj +++ b/DiscordBotCore.Networking/DiscordBotCore.Networking.csproj @@ -4,6 +4,7 @@ net8.0 enable enable + AnyCPU;x64;ARM64 diff --git a/DiscordBotCore.PluginCore/DiscordBotCore.PluginCore.csproj b/DiscordBotCore.PluginCore/DiscordBotCore.PluginCore.csproj index 2307c83..c4ad51a 100644 --- a/DiscordBotCore.PluginCore/DiscordBotCore.PluginCore.csproj +++ b/DiscordBotCore.PluginCore/DiscordBotCore.PluginCore.csproj @@ -4,6 +4,7 @@ net8.0 enable enable + AnyCPU;x64;ARM64 diff --git a/DiscordBotCore.PluginManagement.Loading/DiscordBotCore.PluginManagement.Loading.csproj b/DiscordBotCore.PluginManagement.Loading/DiscordBotCore.PluginManagement.Loading.csproj index 1b0ca62..24fad4b 100644 --- a/DiscordBotCore.PluginManagement.Loading/DiscordBotCore.PluginManagement.Loading.csproj +++ b/DiscordBotCore.PluginManagement.Loading/DiscordBotCore.PluginManagement.Loading.csproj @@ -4,6 +4,7 @@ net8.0 enable enable + AnyCPU;x64;ARM64 diff --git a/DiscordBotCore.PluginManagement/DiscordBotCore.PluginManagement.csproj b/DiscordBotCore.PluginManagement/DiscordBotCore.PluginManagement.csproj index fabf584..dc86673 100644 --- a/DiscordBotCore.PluginManagement/DiscordBotCore.PluginManagement.csproj +++ b/DiscordBotCore.PluginManagement/DiscordBotCore.PluginManagement.csproj @@ -4,6 +4,7 @@ net8.0 enable enable + AnyCPU;x64;ARM64 diff --git a/DiscordBotCore.Utilities/DiscordBotCore.Utilities.csproj b/DiscordBotCore.Utilities/DiscordBotCore.Utilities.csproj index 31e3907..4cdc3ff 100644 --- a/DiscordBotCore.Utilities/DiscordBotCore.Utilities.csproj +++ b/DiscordBotCore.Utilities/DiscordBotCore.Utilities.csproj @@ -4,6 +4,7 @@ net8.0 enable enable + AnyCPU;x64;ARM64 diff --git a/DiscordBotCore.WebApplication/DiscordBotCore.WebApplication.csproj b/DiscordBotCore.WebApplication/DiscordBotCore.WebApplication.csproj index 811d440..d5333be 100644 --- a/DiscordBotCore.WebApplication/DiscordBotCore.WebApplication.csproj +++ b/DiscordBotCore.WebApplication/DiscordBotCore.WebApplication.csproj @@ -4,6 +4,7 @@ net8.0 enable enable + AnyCPU;x64;ARM64 diff --git a/DiscordBotCore.WebApplication/Initializer.cs b/DiscordBotCore.WebApplication/Initializer.cs index 407b921..602160f 100644 --- a/DiscordBotCore.WebApplication/Initializer.cs +++ b/DiscordBotCore.WebApplication/Initializer.cs @@ -18,17 +18,22 @@ public static class Initializer private static readonly string DefaultConfigFile = "./Data/Resources/config.json"; private static readonly string DefaultPluginFolder = "./Data/Plugins"; private static readonly string DefaultPluginDatabaseFile = "./Data/Resources/plugins.json"; - + private static readonly string DefaultMaxHistorySize = "1000"; + public static void AddDiscordBotComponents(this IHostApplicationBuilder builder) { builder.Services.AddSingleton(sp => { string logFormat = builder.Configuration["Logger:LogFormat"] ?? DefaultLogFormat; string logFolder = builder.Configuration["Logger:LogFolder"] ?? DefaultLogFolder; - + string maxHistorySize = builder.Configuration["Logger:MaxHistorySize"] ?? DefaultMaxHistorySize; Directory.CreateDirectory(logFolder); - - ILogger logger = new Logger(logFolder, logFormat); + if (!int.TryParse(maxHistorySize, out int maxHistorySizeInt)) + { + maxHistorySizeInt = int.Parse(DefaultMaxHistorySize); + } + + ILogger logger = new Logger(logFolder, logFormat, maxHistorySizeInt); logger.OnLogReceived += (logMessage) => { Console.WriteLine(logMessage.Message); diff --git a/DiscordBotCore/DiscordBotCore.csproj b/DiscordBotCore/DiscordBotCore.csproj index e5dad5f..391d934 100644 --- a/DiscordBotCore/DiscordBotCore.csproj +++ b/DiscordBotCore/DiscordBotCore.csproj @@ -1,8 +1,9 @@ - + net8.0 enable Library + AnyCPU;x64;ARM64 diff --git a/Modules/CppCompatibilityModule/CppCompatibilityModule.csproj b/Modules/CppCompatibilityModule/CppCompatibilityModule.csproj index 0b25164..09fbee3 100644 --- a/Modules/CppCompatibilityModule/CppCompatibilityModule.csproj +++ b/Modules/CppCompatibilityModule/CppCompatibilityModule.csproj @@ -4,6 +4,7 @@ net8.0 enable enable + AnyCPU;x64;ARM64 diff --git a/Plugins/LevelingSystem/LevelingSystem.csproj b/Plugins/LevelingSystem/LevelingSystem.csproj index 63ece1c..30e67eb 100644 --- a/Plugins/LevelingSystem/LevelingSystem.csproj +++ b/Plugins/LevelingSystem/LevelingSystem.csproj @@ -4,6 +4,7 @@ net8.0 enable enable + AnyCPU;x64;ARM64 diff --git a/Plugins/MusicPlayer/MusicPlayer.csproj b/Plugins/MusicPlayer/MusicPlayer.csproj index 0d84c2e..df9343e 100644 --- a/Plugins/MusicPlayer/MusicPlayer.csproj +++ b/Plugins/MusicPlayer/MusicPlayer.csproj @@ -4,6 +4,7 @@ net8.0 enable enable + AnyCPU;x64;ARM64 @@ -12,15 +13,15 @@ - + - + - + diff --git a/SethDiscordBot.sln b/SethDiscordBot.sln index b26345f..d88b594 100644 --- a/SethDiscordBot.sln +++ b/SethDiscordBot.sln @@ -40,65 +40,181 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|ARM64 = Debug|ARM64 + Debug|x64 = Debug|x64 Release|Any CPU = Release|Any CPU + Release|ARM64 = Release|ARM64 + Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {5A99BFC3-EB39-4AEF-8D61-3CE22D013B02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5A99BFC3-EB39-4AEF-8D61-3CE22D013B02}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5A99BFC3-EB39-4AEF-8D61-3CE22D013B02}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {5A99BFC3-EB39-4AEF-8D61-3CE22D013B02}.Debug|ARM64.Build.0 = Debug|ARM64 + {5A99BFC3-EB39-4AEF-8D61-3CE22D013B02}.Debug|x64.ActiveCfg = Debug|x64 + {5A99BFC3-EB39-4AEF-8D61-3CE22D013B02}.Debug|x64.Build.0 = Debug|x64 {5A99BFC3-EB39-4AEF-8D61-3CE22D013B02}.Release|Any CPU.ActiveCfg = Release|Any CPU {5A99BFC3-EB39-4AEF-8D61-3CE22D013B02}.Release|Any CPU.Build.0 = Release|Any CPU + {5A99BFC3-EB39-4AEF-8D61-3CE22D013B02}.Release|ARM64.ActiveCfg = Release|ARM64 + {5A99BFC3-EB39-4AEF-8D61-3CE22D013B02}.Release|ARM64.Build.0 = Release|ARM64 + {5A99BFC3-EB39-4AEF-8D61-3CE22D013B02}.Release|x64.ActiveCfg = Release|x64 + {5A99BFC3-EB39-4AEF-8D61-3CE22D013B02}.Release|x64.Build.0 = Release|x64 {FCE9743F-7EB4-4639-A080-FCDDFCC7D689}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FCE9743F-7EB4-4639-A080-FCDDFCC7D689}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FCE9743F-7EB4-4639-A080-FCDDFCC7D689}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {FCE9743F-7EB4-4639-A080-FCDDFCC7D689}.Debug|ARM64.Build.0 = Debug|ARM64 + {FCE9743F-7EB4-4639-A080-FCDDFCC7D689}.Debug|x64.ActiveCfg = Debug|x64 + {FCE9743F-7EB4-4639-A080-FCDDFCC7D689}.Debug|x64.Build.0 = Debug|x64 {FCE9743F-7EB4-4639-A080-FCDDFCC7D689}.Release|Any CPU.ActiveCfg = Release|Any CPU {FCE9743F-7EB4-4639-A080-FCDDFCC7D689}.Release|Any CPU.Build.0 = Release|Any CPU + {FCE9743F-7EB4-4639-A080-FCDDFCC7D689}.Release|ARM64.ActiveCfg = Release|ARM64 + {FCE9743F-7EB4-4639-A080-FCDDFCC7D689}.Release|ARM64.Build.0 = Release|ARM64 + {FCE9743F-7EB4-4639-A080-FCDDFCC7D689}.Release|x64.ActiveCfg = Release|x64 + {FCE9743F-7EB4-4639-A080-FCDDFCC7D689}.Release|x64.Build.0 = Release|x64 {F3C61A47-F758-4145-B496-E3ECCF979D89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F3C61A47-F758-4145-B496-E3ECCF979D89}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F3C61A47-F758-4145-B496-E3ECCF979D89}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {F3C61A47-F758-4145-B496-E3ECCF979D89}.Debug|ARM64.Build.0 = Debug|ARM64 + {F3C61A47-F758-4145-B496-E3ECCF979D89}.Debug|x64.ActiveCfg = Debug|x64 + {F3C61A47-F758-4145-B496-E3ECCF979D89}.Debug|x64.Build.0 = Debug|x64 {F3C61A47-F758-4145-B496-E3ECCF979D89}.Release|Any CPU.ActiveCfg = Release|Any CPU {F3C61A47-F758-4145-B496-E3ECCF979D89}.Release|Any CPU.Build.0 = Release|Any CPU + {F3C61A47-F758-4145-B496-E3ECCF979D89}.Release|ARM64.ActiveCfg = Release|ARM64 + {F3C61A47-F758-4145-B496-E3ECCF979D89}.Release|ARM64.Build.0 = Release|ARM64 + {F3C61A47-F758-4145-B496-E3ECCF979D89}.Release|x64.ActiveCfg = Release|x64 + {F3C61A47-F758-4145-B496-E3ECCF979D89}.Release|x64.Build.0 = Release|x64 {C67908F9-4A55-4DD8-B993-C26C648226F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C67908F9-4A55-4DD8-B993-C26C648226F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C67908F9-4A55-4DD8-B993-C26C648226F1}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {C67908F9-4A55-4DD8-B993-C26C648226F1}.Debug|ARM64.Build.0 = Debug|ARM64 + {C67908F9-4A55-4DD8-B993-C26C648226F1}.Debug|x64.ActiveCfg = Debug|x64 + {C67908F9-4A55-4DD8-B993-C26C648226F1}.Debug|x64.Build.0 = Debug|x64 {C67908F9-4A55-4DD8-B993-C26C648226F1}.Release|Any CPU.ActiveCfg = Release|Any CPU {C67908F9-4A55-4DD8-B993-C26C648226F1}.Release|Any CPU.Build.0 = Release|Any CPU + {C67908F9-4A55-4DD8-B993-C26C648226F1}.Release|ARM64.ActiveCfg = Release|ARM64 + {C67908F9-4A55-4DD8-B993-C26C648226F1}.Release|ARM64.Build.0 = Release|ARM64 + {C67908F9-4A55-4DD8-B993-C26C648226F1}.Release|x64.ActiveCfg = Release|x64 + {C67908F9-4A55-4DD8-B993-C26C648226F1}.Release|x64.Build.0 = Release|x64 {B5725C86-2633-4C7A-A6A4-49AAA2767E54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B5725C86-2633-4C7A-A6A4-49AAA2767E54}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5725C86-2633-4C7A-A6A4-49AAA2767E54}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {B5725C86-2633-4C7A-A6A4-49AAA2767E54}.Debug|ARM64.Build.0 = Debug|ARM64 + {B5725C86-2633-4C7A-A6A4-49AAA2767E54}.Debug|x64.ActiveCfg = Debug|x64 + {B5725C86-2633-4C7A-A6A4-49AAA2767E54}.Debug|x64.Build.0 = Debug|x64 {B5725C86-2633-4C7A-A6A4-49AAA2767E54}.Release|Any CPU.ActiveCfg = Release|Any CPU {B5725C86-2633-4C7A-A6A4-49AAA2767E54}.Release|Any CPU.Build.0 = Release|Any CPU + {B5725C86-2633-4C7A-A6A4-49AAA2767E54}.Release|ARM64.ActiveCfg = Release|ARM64 + {B5725C86-2633-4C7A-A6A4-49AAA2767E54}.Release|ARM64.Build.0 = Release|ARM64 + {B5725C86-2633-4C7A-A6A4-49AAA2767E54}.Release|x64.ActiveCfg = Release|x64 + {B5725C86-2633-4C7A-A6A4-49AAA2767E54}.Release|x64.Build.0 = Release|x64 {10D064BB-399F-45DA-B64A-D68740A89E0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {10D064BB-399F-45DA-B64A-D68740A89E0F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {10D064BB-399F-45DA-B64A-D68740A89E0F}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {10D064BB-399F-45DA-B64A-D68740A89E0F}.Debug|ARM64.Build.0 = Debug|ARM64 + {10D064BB-399F-45DA-B64A-D68740A89E0F}.Debug|x64.ActiveCfg = Debug|x64 + {10D064BB-399F-45DA-B64A-D68740A89E0F}.Debug|x64.Build.0 = Debug|x64 {10D064BB-399F-45DA-B64A-D68740A89E0F}.Release|Any CPU.ActiveCfg = Release|Any CPU {10D064BB-399F-45DA-B64A-D68740A89E0F}.Release|Any CPU.Build.0 = Release|Any CPU + {10D064BB-399F-45DA-B64A-D68740A89E0F}.Release|ARM64.ActiveCfg = Release|ARM64 + {10D064BB-399F-45DA-B64A-D68740A89E0F}.Release|ARM64.Build.0 = Release|ARM64 + {10D064BB-399F-45DA-B64A-D68740A89E0F}.Release|x64.ActiveCfg = Release|x64 + {10D064BB-399F-45DA-B64A-D68740A89E0F}.Release|x64.Build.0 = Release|x64 {AAD94C92-3048-4785-9D29-634C97152760}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AAD94C92-3048-4785-9D29-634C97152760}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AAD94C92-3048-4785-9D29-634C97152760}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {AAD94C92-3048-4785-9D29-634C97152760}.Debug|ARM64.Build.0 = Debug|ARM64 + {AAD94C92-3048-4785-9D29-634C97152760}.Debug|x64.ActiveCfg = Debug|x64 + {AAD94C92-3048-4785-9D29-634C97152760}.Debug|x64.Build.0 = Debug|x64 {AAD94C92-3048-4785-9D29-634C97152760}.Release|Any CPU.ActiveCfg = Release|Any CPU {AAD94C92-3048-4785-9D29-634C97152760}.Release|Any CPU.Build.0 = Release|Any CPU + {AAD94C92-3048-4785-9D29-634C97152760}.Release|ARM64.ActiveCfg = Release|ARM64 + {AAD94C92-3048-4785-9D29-634C97152760}.Release|ARM64.Build.0 = Release|ARM64 + {AAD94C92-3048-4785-9D29-634C97152760}.Release|x64.ActiveCfg = Release|x64 + {AAD94C92-3048-4785-9D29-634C97152760}.Release|x64.Build.0 = Release|x64 {81E234B7-5182-4883-B70A-66D45F1D2427}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {81E234B7-5182-4883-B70A-66D45F1D2427}.Debug|Any CPU.Build.0 = Debug|Any CPU + {81E234B7-5182-4883-B70A-66D45F1D2427}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {81E234B7-5182-4883-B70A-66D45F1D2427}.Debug|ARM64.Build.0 = Debug|ARM64 + {81E234B7-5182-4883-B70A-66D45F1D2427}.Debug|x64.ActiveCfg = Debug|x64 + {81E234B7-5182-4883-B70A-66D45F1D2427}.Debug|x64.Build.0 = Debug|x64 {81E234B7-5182-4883-B70A-66D45F1D2427}.Release|Any CPU.ActiveCfg = Release|Any CPU {81E234B7-5182-4883-B70A-66D45F1D2427}.Release|Any CPU.Build.0 = Release|Any CPU + {81E234B7-5182-4883-B70A-66D45F1D2427}.Release|ARM64.ActiveCfg = Release|ARM64 + {81E234B7-5182-4883-B70A-66D45F1D2427}.Release|ARM64.Build.0 = Release|ARM64 + {81E234B7-5182-4883-B70A-66D45F1D2427}.Release|x64.ActiveCfg = Release|x64 + {81E234B7-5182-4883-B70A-66D45F1D2427}.Release|x64.Build.0 = Release|x64 {0EDC103A-C248-4146-98AC-3398B8FBC40F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0EDC103A-C248-4146-98AC-3398B8FBC40F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0EDC103A-C248-4146-98AC-3398B8FBC40F}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {0EDC103A-C248-4146-98AC-3398B8FBC40F}.Debug|ARM64.Build.0 = Debug|ARM64 + {0EDC103A-C248-4146-98AC-3398B8FBC40F}.Debug|x64.ActiveCfg = Debug|x64 + {0EDC103A-C248-4146-98AC-3398B8FBC40F}.Debug|x64.Build.0 = Debug|x64 {0EDC103A-C248-4146-98AC-3398B8FBC40F}.Release|Any CPU.ActiveCfg = Release|Any CPU {0EDC103A-C248-4146-98AC-3398B8FBC40F}.Release|Any CPU.Build.0 = Release|Any CPU + {0EDC103A-C248-4146-98AC-3398B8FBC40F}.Release|ARM64.ActiveCfg = Release|ARM64 + {0EDC103A-C248-4146-98AC-3398B8FBC40F}.Release|ARM64.Build.0 = Release|ARM64 + {0EDC103A-C248-4146-98AC-3398B8FBC40F}.Release|x64.ActiveCfg = Release|x64 + {0EDC103A-C248-4146-98AC-3398B8FBC40F}.Release|x64.Build.0 = Release|x64 {BB77A7A4-0D6E-428C-9279-6301F4F85BE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BB77A7A4-0D6E-428C-9279-6301F4F85BE1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB77A7A4-0D6E-428C-9279-6301F4F85BE1}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {BB77A7A4-0D6E-428C-9279-6301F4F85BE1}.Debug|ARM64.Build.0 = Debug|ARM64 + {BB77A7A4-0D6E-428C-9279-6301F4F85BE1}.Debug|x64.ActiveCfg = Debug|x64 + {BB77A7A4-0D6E-428C-9279-6301F4F85BE1}.Debug|x64.Build.0 = Debug|x64 {BB77A7A4-0D6E-428C-9279-6301F4F85BE1}.Release|Any CPU.ActiveCfg = Release|Any CPU {BB77A7A4-0D6E-428C-9279-6301F4F85BE1}.Release|Any CPU.Build.0 = Release|Any CPU + {BB77A7A4-0D6E-428C-9279-6301F4F85BE1}.Release|ARM64.ActiveCfg = Release|ARM64 + {BB77A7A4-0D6E-428C-9279-6301F4F85BE1}.Release|ARM64.Build.0 = Release|ARM64 + {BB77A7A4-0D6E-428C-9279-6301F4F85BE1}.Release|x64.ActiveCfg = Release|x64 + {BB77A7A4-0D6E-428C-9279-6301F4F85BE1}.Release|x64.Build.0 = Release|x64 {E8ED73E1-F7D9-44E7-9542-21BC86338724}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E8ED73E1-F7D9-44E7-9542-21BC86338724}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E8ED73E1-F7D9-44E7-9542-21BC86338724}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {E8ED73E1-F7D9-44E7-9542-21BC86338724}.Debug|ARM64.Build.0 = Debug|ARM64 + {E8ED73E1-F7D9-44E7-9542-21BC86338724}.Debug|x64.ActiveCfg = Debug|x64 + {E8ED73E1-F7D9-44E7-9542-21BC86338724}.Debug|x64.Build.0 = Debug|x64 {E8ED73E1-F7D9-44E7-9542-21BC86338724}.Release|Any CPU.ActiveCfg = Release|Any CPU {E8ED73E1-F7D9-44E7-9542-21BC86338724}.Release|Any CPU.Build.0 = Release|Any CPU + {E8ED73E1-F7D9-44E7-9542-21BC86338724}.Release|ARM64.ActiveCfg = Release|ARM64 + {E8ED73E1-F7D9-44E7-9542-21BC86338724}.Release|ARM64.Build.0 = Release|ARM64 + {E8ED73E1-F7D9-44E7-9542-21BC86338724}.Release|x64.ActiveCfg = Release|x64 + {E8ED73E1-F7D9-44E7-9542-21BC86338724}.Release|x64.Build.0 = Release|x64 {6D43E9A7-A295-41AC-8B2A-9A877FABB5DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6D43E9A7-A295-41AC-8B2A-9A877FABB5DE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D43E9A7-A295-41AC-8B2A-9A877FABB5DE}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {6D43E9A7-A295-41AC-8B2A-9A877FABB5DE}.Debug|ARM64.Build.0 = Debug|ARM64 + {6D43E9A7-A295-41AC-8B2A-9A877FABB5DE}.Debug|x64.ActiveCfg = Debug|x64 + {6D43E9A7-A295-41AC-8B2A-9A877FABB5DE}.Debug|x64.Build.0 = Debug|x64 {6D43E9A7-A295-41AC-8B2A-9A877FABB5DE}.Release|Any CPU.ActiveCfg = Release|Any CPU {6D43E9A7-A295-41AC-8B2A-9A877FABB5DE}.Release|Any CPU.Build.0 = Release|Any CPU + {6D43E9A7-A295-41AC-8B2A-9A877FABB5DE}.Release|ARM64.ActiveCfg = Release|ARM64 + {6D43E9A7-A295-41AC-8B2A-9A877FABB5DE}.Release|ARM64.Build.0 = Release|ARM64 + {6D43E9A7-A295-41AC-8B2A-9A877FABB5DE}.Release|x64.ActiveCfg = Release|x64 + {6D43E9A7-A295-41AC-8B2A-9A877FABB5DE}.Release|x64.Build.0 = Release|x64 {A65A1D7A-99E9-463F-A205-F96CA54D5C51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A65A1D7A-99E9-463F-A205-F96CA54D5C51}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A65A1D7A-99E9-463F-A205-F96CA54D5C51}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {A65A1D7A-99E9-463F-A205-F96CA54D5C51}.Debug|ARM64.Build.0 = Debug|ARM64 + {A65A1D7A-99E9-463F-A205-F96CA54D5C51}.Debug|x64.ActiveCfg = Debug|x64 + {A65A1D7A-99E9-463F-A205-F96CA54D5C51}.Debug|x64.Build.0 = Debug|x64 {A65A1D7A-99E9-463F-A205-F96CA54D5C51}.Release|Any CPU.ActiveCfg = Release|Any CPU {A65A1D7A-99E9-463F-A205-F96CA54D5C51}.Release|Any CPU.Build.0 = Release|Any CPU + {A65A1D7A-99E9-463F-A205-F96CA54D5C51}.Release|ARM64.ActiveCfg = Release|ARM64 + {A65A1D7A-99E9-463F-A205-F96CA54D5C51}.Release|ARM64.Build.0 = Release|ARM64 + {A65A1D7A-99E9-463F-A205-F96CA54D5C51}.Release|x64.ActiveCfg = Release|x64 + {A65A1D7A-99E9-463F-A205-F96CA54D5C51}.Release|x64.Build.0 = Release|x64 {DE42253E-2ED6-4653-B9CC-C2C2551E1EA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DE42253E-2ED6-4653-B9CC-C2C2551E1EA8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DE42253E-2ED6-4653-B9CC-C2C2551E1EA8}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {DE42253E-2ED6-4653-B9CC-C2C2551E1EA8}.Debug|ARM64.Build.0 = Debug|ARM64 + {DE42253E-2ED6-4653-B9CC-C2C2551E1EA8}.Debug|x64.ActiveCfg = Debug|x64 + {DE42253E-2ED6-4653-B9CC-C2C2551E1EA8}.Debug|x64.Build.0 = Debug|x64 {DE42253E-2ED6-4653-B9CC-C2C2551E1EA8}.Release|Any CPU.ActiveCfg = Release|Any CPU {DE42253E-2ED6-4653-B9CC-C2C2551E1EA8}.Release|Any CPU.Build.0 = Release|Any CPU + {DE42253E-2ED6-4653-B9CC-C2C2551E1EA8}.Release|ARM64.ActiveCfg = Release|ARM64 + {DE42253E-2ED6-4653-B9CC-C2C2551E1EA8}.Release|ARM64.Build.0 = Release|ARM64 + {DE42253E-2ED6-4653-B9CC-C2C2551E1EA8}.Release|x64.ActiveCfg = Release|x64 + {DE42253E-2ED6-4653-B9CC-C2C2551E1EA8}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/WebUI/Components/Pages/Home.razor b/WebUI/Components/Pages/Home.razor index b1e8a96..5488824 100644 --- a/WebUI/Components/Pages/Home.razor +++ b/WebUI/Components/Pages/Home.razor @@ -19,7 +19,7 @@

Console Log

- @foreach (var line in _Logs) + @foreach (var line in Logger.LogMessages) {
@line.Message
} @@ -49,8 +49,6 @@ @code { private bool IsRunning { get; set; } - private List _Logs { get; set; } = new(); - private const int MaxLogLines = 1000; protected override void OnInitialized() { @@ -62,14 +60,8 @@ { InvokeAsync(async () => { - _Logs.Add(obj); - if (_Logs.Count > MaxLogLines) - { - _Logs.RemoveAt(0); - } - - StateHasChanged(); await JS.InvokeVoidAsync("scrollToBottom", "consoleLog"); + StateHasChanged(); }); } @@ -120,6 +112,6 @@ private void ClearLogs() { - _Logs.Clear(); + Logger.LogMessages.Clear(); } } diff --git a/WebUI/WebUI.csproj b/WebUI/WebUI.csproj index e2caac1..8239fdc 100644 --- a/WebUI/WebUI.csproj +++ b/WebUI/WebUI.csproj @@ -4,6 +4,7 @@ net8.0 enable enable + AnyCPU;x64;ARM64