From 3f2c98cb11506c3ff714b814ba1a8def67f09eb8 Mon Sep 17 00:00:00 2001 From: Andrei Tudor Date: Mon, 22 Jul 2024 00:54:52 +0300 Subject: [PATCH] Removed logger module from main project --- LoggerModule/Entry.cs | 22 ------ LoggerModule/LogMessage.cs | 79 -------------------- LoggerModule/Logger.cs | 122 ------------------------------- LoggerModule/LoggerModule.csproj | 13 ---- SethDiscordBot.sln | 6 -- 5 files changed, 242 deletions(-) delete mode 100644 LoggerModule/Entry.cs delete mode 100644 LoggerModule/LogMessage.cs delete mode 100644 LoggerModule/Logger.cs delete mode 100644 LoggerModule/LoggerModule.csproj diff --git a/LoggerModule/Entry.cs b/LoggerModule/Entry.cs deleted file mode 100644 index 10c3d94..0000000 --- a/LoggerModule/Entry.cs +++ /dev/null @@ -1,22 +0,0 @@ -using DiscordBotCore; -using DiscordBotCore.Interfaces.Logger; -using DiscordBotCore.Interfaces.Modules; - -namespace LoggerModule -{ - public class Entry : IModule - { - public string Name => "Logger Module"; - const string _LogFolder = "./Data/Logs/"; - const string _LogFormat = "{ThrowTime} {SenderName} {Message}"; - - public ILogger Module { get; private set; } - - public Task Initialize() - { - ILogger logger = new Logger(_LogFolder, _LogFormat); - Module = logger; - return Task.CompletedTask; - } - } -} diff --git a/LoggerModule/LogMessage.cs b/LoggerModule/LogMessage.cs deleted file mode 100644 index 7f9a39d..0000000 --- a/LoggerModule/LogMessage.cs +++ /dev/null @@ -1,79 +0,0 @@ -using DiscordBotCore.Interfaces.Logger; -using DiscordBotCore.Others; - -namespace LoggerModule -{ - internal sealed class LogMessage : ILogMessage - { - private static readonly string _DefaultLogMessageSender = "\b"; - public string Message { get; set; } - public DateTime ThrowTime { get; set; } - public string SenderName { get; set; } - public LogType LogMessageType { get; set; } - - public LogMessage(string message, LogType logMessageType) - { - Message = message; - LogMessageType = logMessageType; - ThrowTime = DateTime.Now; - SenderName = string.Empty; - } - - public LogMessage(string message, object sender) - { - Message = message; - SenderName = sender is string && sender as string == string.Empty ? _DefaultLogMessageSender : sender.GetType().FullName ?? sender.GetType().Name; - ThrowTime = DateTime.Now; - LogMessageType = LogType.INFO; - } - - public LogMessage(string message, object sender, DateTime throwTime) - { - Message = message; - SenderName = sender is string && sender as string == string.Empty ? _DefaultLogMessageSender : sender.GetType().FullName ?? sender.GetType().Name; - ThrowTime = throwTime; - LogMessageType = LogType.INFO; - } - - public LogMessage(string message, object sender, LogType logMessageType) - { - Message = message; - SenderName = sender is string && sender as string == string.Empty ? _DefaultLogMessageSender : sender.GetType().FullName ?? sender.GetType().Name; - ThrowTime = DateTime.Now; - LogMessageType = logMessageType; - - } - - public LogMessage(string message, DateTime throwTime, object sender, LogType logMessageType) - { - Message = message; - ThrowTime = throwTime; - SenderName = sender is string && sender as string == string.Empty ? _DefaultLogMessageSender : sender.GetType().FullName ?? sender.GetType().Name; - LogMessageType = logMessageType; - } - - public LogMessage WithMessage(string message) - { - this.Message = message; - return this; - } - - public LogMessage WithCurrentThrowTime() - { - this.ThrowTime = DateTime.Now; - return this; - } - - public LogMessage WithMessageType(LogType logType) - { - this.LogMessageType = logType; - return this; - } - - public static LogMessage CreateFromException(Exception exception, object Sender, bool logFullStack) - { - LogMessage message = new LogMessage(logFullStack? exception.ToString() : exception.Message, Sender, LogType.ERROR); - return message; - } - } -} diff --git a/LoggerModule/Logger.cs b/LoggerModule/Logger.cs deleted file mode 100644 index bb150c3..0000000 --- a/LoggerModule/Logger.cs +++ /dev/null @@ -1,122 +0,0 @@ -using DiscordBotCore.Interfaces.Logger; -using DiscordBotCore.Others; - -namespace LoggerModule; - -public sealed class Logger : ILogger -{ - private readonly FileStream _LogFileStream; - - public List LogMessageProperties = typeof(ILogMessage).GetProperties().Select(p => p.Name).ToList(); - private Action? _OutFunction; - public string LogMessageFormat { get ; set; } - - public Logger(string logFolder, string logMessageFormat, Action? outFunction = null) - { - this.LogMessageFormat = logMessageFormat; - this._OutFunction = outFunction; - var logFile = logFolder + DateTime.Now.ToString("yyyy-MM-dd") + ".log"; - _LogFileStream = File.Open(logFile, FileMode.Append, FileAccess.Write, FileShare.Read); - } - - /// - /// 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); - foreach (var prop in LogMessageProperties) - { - Type messageType = typeof(ILogMessage); - messageAsString = messageAsString.Replace("{" + prop + "}", messageType?.GetProperty(prop)?.GetValue(message)?.ToString()); - } - - switch (message.LogMessageType) - { - case LogType.INFO: - messageAsString = $"[green]{messageAsString} [/]"; - break; - case LogType.WARNING: - messageAsString = $"[yellow]{messageAsString} [/]"; - break; - case LogType.ERROR: - messageAsString = $"[red]{messageAsString} [/]"; - break; - case LogType.CRITICAL: - messageAsString = $"[red] [bold]{messageAsString} [/][/]"; - break; - - } - - return messageAsString; - } - - private async void LogToFile(string message) - { - byte[] messageAsBytes = System.Text.Encoding.ASCII.GetBytes(message); - await _LogFileStream.WriteAsync(messageAsBytes, 0, messageAsBytes.Length); - - byte[] newLine = System.Text.Encoding.ASCII.GetBytes(Environment.NewLine); - await _LogFileStream.WriteAsync(newLine, 0, newLine.Length); - - await _LogFileStream.FlushAsync(); - } - - private string GenerateLogMessage(ILogMessage message, string customFormat) - { - string messageAsString = customFormat; - foreach (var prop in LogMessageProperties) - { - Type messageType = typeof(ILogMessage); - messageAsString = messageAsString.Replace("{" + prop + "}", messageType?.GetProperty(prop)?.GetValue(message)?.ToString()); - } - - switch (message.LogMessageType) - { - case LogType.INFO: - messageAsString = $"[green]{messageAsString} [/]"; - break; - case LogType.WARNING: - messageAsString = $"[yellow]{messageAsString} [/]"; - break; - case LogType.ERROR: - messageAsString = $"[red]{messageAsString} [/]"; - break; - case LogType.CRITICAL: - messageAsString = $"[red][bold]{messageAsString} [/][/]"; - break; - - } - - return messageAsString; - } - - public void Log(ILogMessage message, string format) - { - string messageAsString = GenerateLogMessage(message, format); - _OutFunction?.Invoke(messageAsString); - LogToFile(messageAsString); - } - - public void Log(ILogMessage message) - { - string messageAsString = GenerateLogMessage(message); - _OutFunction?.Invoke(messageAsString); - LogToFile(messageAsString); - - } - - public void Log(string message) => Log(new LogMessage(message, string.Empty, LogType.INFO)); - public void Log(string message, LogType logType, string format) => Log(new LogMessage(message, logType), format); - public void Log(string message, LogType logType) => Log(new LogMessage(message, logType)); - public void Log(string message, object Sender) => Log(new LogMessage(message, Sender)); - public void Log(string message, object Sender, LogType type) => Log(new LogMessage(message, Sender, type)); - public void LogException(Exception exception, object Sender, bool logFullStack = false) => Log(LogMessage.CreateFromException(exception, Sender, logFullStack)); - - public void SetOutFunction(Action outFunction) - { - this._OutFunction = outFunction; - } -} diff --git a/LoggerModule/LoggerModule.csproj b/LoggerModule/LoggerModule.csproj deleted file mode 100644 index 4a8cc15..0000000 --- a/LoggerModule/LoggerModule.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - net8.0 - enable - enable - - - - - - - diff --git a/SethDiscordBot.sln b/SethDiscordBot.sln index 6f1e6f8..5631c4d 100644 --- a/SethDiscordBot.sln +++ b/SethDiscordBot.sln @@ -6,8 +6,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DiscordBot", "DiscordBot\Di EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DiscordBotCore", "DiscordBotCore\DiscordBotCore.csproj", "{5A99BFC3-EB39-4AEF-8D61-3CE22D013B02}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoggerModule", "LoggerModule\LoggerModule.csproj", "{B7FC821B-031E-4656-9B8B-AC5D678E047A}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -22,10 +20,6 @@ Global {5A99BFC3-EB39-4AEF-8D61-3CE22D013B02}.Debug|Any CPU.Build.0 = Debug|Any CPU {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 - {B7FC821B-031E-4656-9B8B-AC5D678E047A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B7FC821B-031E-4656-9B8B-AC5D678E047A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B7FC821B-031E-4656-9B8B-AC5D678E047A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B7FC821B-031E-4656-9B8B-AC5D678E047A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE