From 753fd5aad14636bde13fcf5a21c0cdaae391861c Mon Sep 17 00:00:00 2001 From: Stone-Red-Code <56473591+Stone-Red-Code@users.noreply.github.com> Date: Tue, 13 Apr 2021 10:21:56 +0200 Subject: [PATCH] Added namespaces in separate files and added logging class --- .../DesignTimeBuild/.dtbcache.v2 | Bin 47384 -> 49772 bytes .vs/Stone_Red-C-Sharp-Utilities/v16/.suo | Bin 34816 -> 51200 bytes ..._Red_Utilities.cs => ArrListExtentions.cs} | 147 ----------- Stone_Red-C-Sharp-Utilities/BoolExtentions.cs | 30 +++ .../ConsoleExtentions.cs | 75 ++++++ Stone_Red-C-Sharp-Utilities/Logging.cs | 238 ++++++++++++++++++ .../Stone_Red-C-Sharp-Utilities.xml | 151 ++++++++++- .../StringExtentions.cs | 118 +++++++++ .../Stone_Red-C-Sharp-Utilities.1.0.0.2.nupkg | Bin 7777 -> 10223 bytes .../Stone_Red-C-Sharp-Utilities.dll | Bin 8192 -> 12288 bytes .../Stone_Red-C-Sharp-Utilities.pdb | Bin 9776 -> 11320 bytes .../Stone_Red-C-Sharp-Utilities.xml | 151 ++++++++++- ...p-Utilities.csproj.CoreCompileInputs.cache | 2 +- ...harp-Utilities.csproj.FileListAbsolute.txt | 2 +- ...rp-Utilities.csprojAssemblyReference.cache | Bin 424 -> 424 bytes .../Stone_Red-C-Sharp-Utilities.dll | Bin 8192 -> 12288 bytes .../Stone_Red-C-Sharp-Utilities.pdb | Bin 9776 -> 11320 bytes ...C-Sharp-Utilities.csproj.nuget.dgspec.json | 2 +- .../obj/project.assets.json | 2 +- .../obj/project.nuget.cache | 2 +- 20 files changed, 762 insertions(+), 158 deletions(-) rename Stone_Red-C-Sharp-Utilities/{Stone_Red_Utilities.cs => ArrListExtentions.cs} (51%) create mode 100644 Stone_Red-C-Sharp-Utilities/BoolExtentions.cs create mode 100644 Stone_Red-C-Sharp-Utilities/ConsoleExtentions.cs create mode 100644 Stone_Red-C-Sharp-Utilities/Logging.cs create mode 100644 Stone_Red-C-Sharp-Utilities/StringExtentions.cs diff --git a/.vs/Stone_Red-C-Sharp-Utilities/DesignTimeBuild/.dtbcache.v2 b/.vs/Stone_Red-C-Sharp-Utilities/DesignTimeBuild/.dtbcache.v2 index 0dbf28effa511e44c01351efe04d02c44586c3ab..9849f40874c28ffe88daac41c910c697236a5633 100644 GIT binary patch literal 49772 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 al51G?S|r!8>h(x&VAUIu+{8{i@&5qNCM}Zy literal 47384 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 Y0vkLL;v_bBGQ=rt@KlJ?*rA91FCT_RbpQYW diff --git a/.vs/Stone_Red-C-Sharp-Utilities/v16/.suo b/.vs/Stone_Red-C-Sharp-Utilities/v16/.suo index 29ddaa956bed511c6fcb5b1c4dcbc8f6412e7181..4f74ee94909cc36ad4bee70c37f944bbd8f54525 100644 GIT binary patch literal 51200 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 OZEgD{*2$?hulN%@4Kk$w diff --git a/Stone_Red-C-Sharp-Utilities/Stone_Red_Utilities.cs b/Stone_Red-C-Sharp-Utilities/ArrListExtentions.cs similarity index 51% rename from Stone_Red-C-Sharp-Utilities/Stone_Red_Utilities.cs rename to Stone_Red-C-Sharp-Utilities/ArrListExtentions.cs index 6b95d1e..c1891f0 100644 --- a/Stone_Red-C-Sharp-Utilities/Stone_Red_Utilities.cs +++ b/Stone_Red-C-Sharp-Utilities/ArrListExtentions.cs @@ -157,151 +157,4 @@ namespace Stone_Red_Utilities.ArrListExtentions Console.WriteLine(); } } -} - -namespace Stone_Red_Utilities.BoolExtentions -{ - /// - /// Extentions - /// - public static class BoolExt - { - /// - /// Sets value to true if input is true. If input is false the value will not change. - /// - /// - /// - public static void OneWayTrue(this ref bool bol, bool input) - { - if (bol == false && input) - bol = true; - } - - /// - /// Sets value to false if input is false. If input is true the value will not change. - /// - /// - /// - public static void OneWayFalse(this ref bool bol, bool input) - { - if (bol == true && !input) - bol = false; - } - } -} - -namespace Stone_Red_Utilities.ColorConsole -{ - /// - /// Console Extentions - /// - public static class ConsoleExt - { - /// - /// Writes the text representation of the specified object to the standard output stream. - /// - /// - /// - public static void Write(object value, ConsoleColor color) - { - lock (Console.Out) - { - ConsoleColor oldColor = Console.ForegroundColor; - Console.ForegroundColor = color; - Console.Write(value); - Console.ForegroundColor = oldColor; - } - } - - /// - /// Writes the text representation of the specified object, followed by the current line terminator, to the standard output stream. - /// - /// - /// - public static void WriteLine(object value, ConsoleColor color) - { - lock (Console.Out) - { - ConsoleColor oldColor = Console.ForegroundColor; - Console.ForegroundColor = color; - Console.WriteLine(value); - Console.ForegroundColor = oldColor; - } - } - } -} - -namespace Stone_Red_Utilities.StringExtentions -{ - /// - /// Extentions - /// - public static class StringExt - { - /// - /// Determines whether this instance and another specified object have the same value regardless of upper and lower case. - /// - /// - /// - /// - public static bool EqualsIgnoreCase(this string str, string value) - { - return str.ToLower().Equals(value.ToLower()); - } - - /// - /// Determines whether this instance and another specified object have the same value regardless of spaces. - /// - /// - /// - /// - public static bool EqualsIgnoreSpaces(this string str, string value) - { - return str.Replace(" ", string.Empty).Equals(value.Replace(" ", string.Empty)); - } - - /// - /// Determines whether this instance and another specified object have the same value regardless of upper and lower case and spaces. - /// - /// - /// - /// - public static bool EqualsIgnoreSpacesAndCase(this string str, string value) - { - return str.Replace(" ", string.Empty).ToLower().Equals(value.Replace(" ", string.Empty).ToLower()); - } - - /// - /// Removes all invalid chars from file name - /// - /// - /// - /// - public static string ToFileName(this string str, bool allowSpaces = false) - { - char[] invalidChars = Path.GetInvalidFileNameChars(); - - if (!allowSpaces) - str = str.Replace(" ", string.Empty); - - foreach (var item in invalidChars) - { - str = str.Replace(item.ToString(), string.Empty); - } - - var normalizedString = str.Normalize(NormalizationForm.FormD); - var stringBuilder = new StringBuilder(); - - foreach (var c in normalizedString) - { - var unicodeCategory = CharUnicodeInfo.GetUnicodeCategory(c); - if (unicodeCategory != UnicodeCategory.NonSpacingMark) - { - stringBuilder.Append(c); - } - } - - return stringBuilder.ToString().Normalize(NormalizationForm.FormC); - } - } } \ No newline at end of file diff --git a/Stone_Red-C-Sharp-Utilities/BoolExtentions.cs b/Stone_Red-C-Sharp-Utilities/BoolExtentions.cs new file mode 100644 index 0000000..301d883 --- /dev/null +++ b/Stone_Red-C-Sharp-Utilities/BoolExtentions.cs @@ -0,0 +1,30 @@ +namespace Stone_Red_Utilities.BoolExtentions +{ + /// + /// Extentions + /// + public static class BoolExt + { + /// + /// Sets value to true if input is true. If input is false the value will not change. + /// + /// + /// + public static void OneWayTrue(this ref bool bol, bool input) + { + if (bol == false && input) + bol = true; + } + + /// + /// Sets value to false if input is false. If input is true the value will not change. + /// + /// + /// + public static void OneWayFalse(this ref bool bol, bool input) + { + if (bol == true && !input) + bol = false; + } + } +} \ No newline at end of file diff --git a/Stone_Red-C-Sharp-Utilities/ConsoleExtentions.cs b/Stone_Red-C-Sharp-Utilities/ConsoleExtentions.cs new file mode 100644 index 0000000..9a23299 --- /dev/null +++ b/Stone_Red-C-Sharp-Utilities/ConsoleExtentions.cs @@ -0,0 +1,75 @@ +using System; + +namespace Stone_Red_Utilities.ConsoleExtentions +{ + /// + /// Console Extentions + /// + public static class ConsoleExt + { + /// + /// Writes the text representation of the specified object to the standard output stream. + /// + /// + /// + public static void Write(object value, ConsoleColor color) + { + lock (Console.Out) + { + ConsoleColor oldColor = Console.ForegroundColor; + Console.ForegroundColor = color; + Console.Write(value); + Console.ForegroundColor = oldColor; + } + } + + /// + /// Writes the text representation of the specified object, followed by the current line terminator, to the standard output stream. + /// + /// + /// + public static void WriteLine(object value, ConsoleColor color) + { + lock (Console.Out) + { + ConsoleColor oldColor = Console.ForegroundColor; + Console.ForegroundColor = color; + Console.WriteLine(value); + Console.ForegroundColor = oldColor; + } + } + + /// + /// Suspends execution until the user presses a key + /// + /// + /// + public static void Pause(bool enterKeyOnly = false, string customMessage = null) + { + if (customMessage is null) + { + if (enterKeyOnly) + { + Console.WriteLine("Press ENTER to continue."); + } + else + { + Console.WriteLine("Press any key to continue."); + } + } + else + { + Console.WriteLine(customMessage); + } + + if (enterKeyOnly) + { + Console.ReadLine(); + } + else + { + Console.ReadKey(); + } + } + } +} \ No newline at end of file diff --git a/Stone_Red-C-Sharp-Utilities/Logging.cs b/Stone_Red-C-Sharp-Utilities/Logging.cs new file mode 100644 index 0000000..015ea8e --- /dev/null +++ b/Stone_Red-C-Sharp-Utilities/Logging.cs @@ -0,0 +1,238 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.Runtime.CompilerServices; +using Stone_Red_Utilities.ConsoleExtentions; + +namespace Stone_Red_Utilities.Logging +{ + /// + /// Specifies the severity of the log target. + /// + public enum LogTarget + { + /// + /// Writes log to console + /// + Console, + + /// + /// Writes log to debug console + /// + DebugConsole, + + /// + /// Writes log to file + /// + File, + + /// + /// Writes log to console and file + /// + ConsoleAndFile, + + /// + /// Writes log to debug console and file + /// + DebugAndFile, + + /// + /// Writes log to console debug console and file + /// + All + } + + /// + /// Specifies the severity of the log message. + /// + public enum LogSeverity + { + /// + /// Logs that contain the most detailed messages. + /// + Debug, + + /// + /// Logs that track the general flow of the application. + /// + Info, + + /// + /// Logs that highlight an abnormal activity in the flow of execution. + /// + Warning, + + /// + /// Logs that highlight when the flow of execution is stopped due to a failure. + /// + Error, + + /// + /// Logs that contain the most severe level of error. This type of error indicate that immediate attention may be required. + /// + Fatal + } + + /// + /// Class used for logging + /// + public class Logger + { + private readonly string logPath; + private readonly LogTarget logTarget; + + /// + /// Format that is used when logging to the console + /// + public string ConsoleLogFormat { get; set; } + + /// + /// Format that is used when logging to the debug console + /// + public string DebugConsoleLogFormat { get; set; } + + /// + /// Format that is used when logging to a file + /// + public string FileLogFormat { get; set; } + + /// + /// Initializes the logger with the default format + /// + /// + /// + /// + public Logger(LogTarget logTarg = LogTarget.Console, string file = null, string defaultFormat = "{:HH:mm:ss} | {,-7} | {,-15} | {}") + { + if (logTarg == LogTarget.ConsoleAndFile || logTarg == LogTarget.DebugAndFile || logTarg == LogTarget.File || logTarg == LogTarget.All) + logPath = file ?? throw new ArgumentNullException($"file can't be null!"); + + logTarget = logTarg; + ConsoleLogFormat = defaultFormat; + DebugConsoleLogFormat = defaultFormat; + FileLogFormat = defaultFormat; + } + + /// + /// Initializes the logger with the default format + /// + /// + /// + public Logger(LogTarget logTarg = LogTarget.Console, string defaultFormat = "{} | {,-7} | {,-15} | {}") + { + if (logTarg == LogTarget.ConsoleAndFile || logTarg == LogTarget.DebugAndFile || logTarg == LogTarget.File || logTarg == LogTarget.All) + throw new ArgumentNullException($"file can't be null!"); + + logTarget = logTarg; + ConsoleLogFormat = defaultFormat; + DebugConsoleLogFormat = defaultFormat; + FileLogFormat = defaultFormat; + } + + /// + /// Log the message to the specified output + /// + /// + /// + /// + /// + /// + /// + public void Log(string message, string source, LogSeverity logSeverity = LogSeverity.Info, [CallerMemberName] string memberName = "", [CallerFilePath] string sourceFilePath = "", [CallerLineNumber] int sourceLineNumber = 0) + { + WriteLog(message, source, logSeverity, memberName, sourceFilePath, sourceLineNumber); + } + + /// + /// Log the message to the specified output when the condition is met + /// + /// + /// + /// + /// + /// + /// + /// + public void LogIf(bool condition, string message, string source, LogSeverity logSeverity = LogSeverity.Info, [CallerMemberName] string memberName = "", [CallerFilePath] string sourceFilePath = "", [CallerLineNumber] int sourceLineNumber = 0) + { + if (condition) + WriteLog(message, source, logSeverity, memberName, sourceFilePath, sourceLineNumber); + } + + /// + /// Clears log file + /// + public void ClearLogFile() + { + if (File.Exists(logPath)) + File.WriteAllText(logPath, string.Empty); + } + + private void WriteLog(string message, string source, LogSeverity logSeverity, string memberName = "", string sourceFilePath = "", int sourceLineNumber = 0) + { + string consoleOutput = GetFormattedString(ConsoleLogFormat, logSeverity, source, message, memberName, sourceFilePath, sourceLineNumber); + string debugOutput = GetFormattedString(DebugConsoleLogFormat, logSeverity, source, message, memberName, sourceFilePath, sourceLineNumber); + string fileOutput = GetFormattedString(FileLogFormat, logSeverity, source, message, memberName, sourceFilePath, sourceLineNumber); + + switch (logTarget) + { + case LogTarget.Console: + ConsoleExt.WriteLine(consoleOutput, GetColor(logSeverity)); + break; + + case LogTarget.DebugConsole: + Debug.WriteLine(debugOutput); + break; + + case LogTarget.File: + File.AppendAllLines(logPath, new[] { fileOutput }); + break; + + case LogTarget.ConsoleAndFile: + ConsoleExt.WriteLine(consoleOutput, GetColor(logSeverity)); + File.AppendAllLines(logPath, new[] { fileOutput }); + break; + + case LogTarget.DebugAndFile: + Debug.WriteLine(debugOutput); + File.AppendAllLines(logPath, new[] { fileOutput }); + break; + + case LogTarget.All: + Debug.WriteLine(debugOutput); + ConsoleExt.WriteLine(consoleOutput, GetColor(logSeverity)); + File.AppendAllLines(logPath, new[] { fileOutput }); + break; + + default: + throw new ArgumentException("Log target type not valid!"); + } + } + + private ConsoleColor GetColor(LogSeverity logSeverity) + { + return logSeverity switch + { + LogSeverity.Fatal => ConsoleColor.DarkRed, + LogSeverity.Error => ConsoleColor.Red, + LogSeverity.Warning => ConsoleColor.DarkYellow, + LogSeverity.Info => ConsoleColor.White, + _ => ConsoleColor.DarkGray, + }; + } + + private string GetFormattedString(string format, LogSeverity logSeverity, string source, string message, string memberName = "", string sourceFilePath = "", int sourceLineNumber = 0) + { + format = format + .Replace("", "0") + .Replace("", "1") + .Replace("", "2") + .Replace("", "3") + .Replace("", "4") + .Replace("", "5") + .Replace("", "6"); + + return string.Format(format, DateTime.Now, logSeverity, sourceLineNumber, sourceFilePath, memberName, source, message); + } + } +} \ No newline at end of file diff --git a/Stone_Red-C-Sharp-Utilities/Stone_Red-C-Sharp-Utilities.xml b/Stone_Red-C-Sharp-Utilities/Stone_Red-C-Sharp-Utilities.xml index 157fc12..e6c9faf 100644 --- a/Stone_Red-C-Sharp-Utilities/Stone_Red-C-Sharp-Utilities.xml +++ b/Stone_Red-C-Sharp-Utilities/Stone_Red-C-Sharp-Utilities.xml @@ -77,25 +77,153 @@ - + Console Extentions - + Writes the text representation of the specified object to the standard output stream. - + Writes the text representation of the specified object, followed by the current line terminator, to the standard output stream. + + + Specifies the severity of the log target. + + + + + Writes log to console + + + + + Writes log to debug console + + + + + Writes log to file + + + + + Writes log to console and file + + + + + Writes log to debug console and file + + + + + Writes log to console debug console and file + + + + + Specifies the severity of the log message. + + + + + Logs that contain the most detailed messages. + + + + + Logs that track the general flow of the application. + + + + + Logs that highlight an abnormal activity in the flow of execution. + + + + + Logs that highlight when the flow of execution is stopped due to a failure. + + + + + Logs that contain the most severe level of error. This type of error indicate that immediate attention may be required. + + + + + Class used for logging + + + + + Format that is used when logging to the console + + + + + Format that is used when logging to the debug console + + + + + Format that is used when logging to a file + + + + + Initializes the logger with the default format + + + + + + + + Initializes the logger with the default format + + + + + + + Log the message to the specified output + + + + + + + + + + + Log the message to the specified output when the condition is met + + + + + + + + + + + + Clears log file + + Extentions @@ -133,5 +261,22 @@ + + + Truncates a string to the specified length. + + + + + + + + Truncates a string to the specified length. + + + + + + diff --git a/Stone_Red-C-Sharp-Utilities/StringExtentions.cs b/Stone_Red-C-Sharp-Utilities/StringExtentions.cs new file mode 100644 index 0000000..0092afc --- /dev/null +++ b/Stone_Red-C-Sharp-Utilities/StringExtentions.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; + +namespace Stone_Red_Utilities.StringExtentions +{ + /// + /// Extentions + /// + public static class StringExt + { + /// + /// Determines whether this instance and another specified object have the same value regardless of upper and lower case. + /// + /// + /// + /// + public static bool EqualsIgnoreCase(this string str, string value) + { + return str.ToLower().Equals(value.ToLower()); + } + + /// + /// Determines whether this instance and another specified object have the same value regardless of spaces. + /// + /// + /// + /// + public static bool EqualsIgnoreSpaces(this string str, string value) + { + return str.Replace(" ", string.Empty).Equals(value.Replace(" ", string.Empty)); + } + + /// + /// Determines whether this instance and another specified object have the same value regardless of upper and lower case and spaces. + /// + /// + /// + /// + public static bool EqualsIgnoreSpacesAndCase(this string str, string value) + { + return str.Replace(" ", string.Empty).ToLower().Equals(value.Replace(" ", string.Empty).ToLower()); + } + + /// + /// Removes all invalid chars from file name + /// + /// + /// + /// + public static string ToFileName(this string str, bool allowSpaces = false) + { + char[] invalidChars = Path.GetInvalidFileNameChars(); + + if (!allowSpaces) + str = str.Replace(" ", string.Empty); + + foreach (var item in invalidChars) + { + str = str.Replace(item.ToString(), string.Empty); + } + + var normalizedString = str.Normalize(NormalizationForm.FormD); + var stringBuilder = new StringBuilder(); + + foreach (var c in normalizedString) + { + var unicodeCategory = CharUnicodeInfo.GetUnicodeCategory(c); + if (unicodeCategory != UnicodeCategory.NonSpacingMark) + { + stringBuilder.Append(c); + } + } + + return stringBuilder.ToString().Normalize(NormalizationForm.FormC); + } + + /// + /// Truncates a string to the specified length. + /// + /// + /// + /// + public static string Truncate(this string str, int length) + { + if (str.Length > length && length > 0) + return str.Substring(0, length); + + return str; + } + + /// + /// Truncates a string to the specified length. + /// + /// + /// + /// + /// + public static string Truncate(this string str, int length, bool ellipsis) + { + if (str.Length > length && length > 0) + if (ellipsis) + { + return $"{str.Substring(0, length - 3)}..."; + } + else + { + return str.Substring(0, length); + } + + return str; + } + } +} \ No newline at end of file diff --git a/Stone_Red-C-Sharp-Utilities/bin/Debug/Stone_Red-C-Sharp-Utilities.1.0.0.2.nupkg b/Stone_Red-C-Sharp-Utilities/bin/Debug/Stone_Red-C-Sharp-Utilities.1.0.0.2.nupkg index 845e162d5532620a7d3b16e929400ac8e03c1da2..626233a7c02f4da37d25395031278ec219a2bf7a 100644 GIT binary patch delta 7908 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 delta 5441 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 XHXhn)D5(Fkq5XZ5f2pxw|6BbZ-{d#R diff --git a/Stone_Red-C-Sharp-Utilities/bin/Debug/netstandard2.1/Stone_Red-C-Sharp-Utilities.dll b/Stone_Red-C-Sharp-Utilities/bin/Debug/netstandard2.1/Stone_Red-C-Sharp-Utilities.dll index 1b845a8add8a80517d3c07bf668a738bdb2cf765..690f13802c861fb283e535e7da45d74fda6f3fa9 100644 GIT binary patch literal 12288 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 TYjf~756|J4{>$tCUj+UaI6GzF delta 3721 zcma)9YiwM_75--KWA9zB*L!#ET|0j4+78LZYdbIUAQa?e6NjXA35g9h5Xi>fJivIJ zwIgDw${G>1K%q*w5wxYPDB@96CcDIL; z;+qrvT%_HtlsExeg5#pCp;yh%=R&>`77ot?=GFirc-CJYY?L(-Dq*9juow%jkk=D1BrzuxFpcQgFMquQ+}55Qw$)7fnV!ok;6|YZX-D(mQ}l* z@iQqovz;)L2`k&~nVuCSY{g`P9q$x=GiAVUVG}X@w9=%XQH?XJ;doW3Gi3X%L8H@p-Wdd+ zGrsL}#y12995Z;@=_&L0JtV_5LWjgihr2^M{#i?h$8RS?6=ZQP+sKL=xOAs@7UgQV zdl)W}Fg>$&#z(`5Xm334$#%^J78}}rG1>vM{gWm9}vN}j^po`5J8#ulGF2s$Qq#FA1em~p&Q`_K_-K1Q3 zj@m~}T+Sp}e~rZs+VEP3VD3tsjX!=E*j3Ro?*&#&s91vFI#ZR5 zWY-~Co$Z3{O2?gP@p+qsKeZg4ll6nPd&pnJo*%$X4OY7qx*1a)W7iQdg(Hqk>N#lS zp>{oB*xJisSvSlGKN8$ol_{UWu2aTeOyYzSpG_stNoQ;?bci*i%3)|?39;g0q?VXG zEz@(ds>aSyJ+oo)LM$SlNms z3csmwSZp#Ac$_zgjcYjc3>zN_g-u$1O3TMI4r$AETAr_Ql_=jsy6;$n9PpIU zW!w0Qy^nIjRF;>G6se~SC7*9AoM*mA|4}GeAd4MXs;B=*Doc&_e_Z=trP=N^6x+Sp zzt{XdmuMQB$lz#8*cdFcUV*3r5(-?;qOTq()|lNGgKUMUPbSkc~Q zr-gr1v?CZ1Aw1p6aU9qxt`;up+h(<+xLQ4yt+FDpJVsjs_0m6?{+dyT-kJl>wG`Kz^|ti%IOIr_i1fng5ad z8EJ`sG6w}t%iMp?R)b$OVle}I^_1^fXIf@`p3uDtCDNobaFm`Vp0r%_n1a`1k7=Pn z%dNyP77=4OSK}&;>os1iaR~hW#kh0jv`gb|VjZTm{3_lt(s&hbn(f3ZY@ay9qG*6vECk_r5BgeQfuUKz4jF1Z`QSN#p_0ixpTspBAznJ z``EOK{p`5Q+E4i?_H)>6)*W~Ri_P!jNjzlTO<56n^t?~|-$(mg`^R_|4a~y`J&&T6 zp2sOaZ{;bg-bc`3oMiRiY&jfxt{oGKIZ5m>n~ASj>9VG47i!`~!eL=tK#U+qjNw9J zE&7B+D>gAX*Q1|upOy!-JVe=H1TUa{H{}d3m7M6VU;_71Zp6dHb{r*Uag4YGQQ3|2 z&@9W{$ib)bWvnG`)_6HKQ6AQK4JIg0;Cb1jNpl*vYMj=1gT^Bo-_!`!Lr!Eg_GsLy zv61;u;L$vc6Y#|gIEHs}I0bWB<)nI;TjTB3o2Mow3)gn{?<^JaBf)!(Ew%l{ z*$)IX7y9y(I}zlY&I-i*#^BMWOES5g`O?7HuHoWHVg1lS%#1J`3&LA( z&=6m1aF`Pc8S#sy*T;CrFXk_E(G-)Ey*@e$Wfr2TI^;Of_?D*lkd*Pf1sRP-%?#pO zNYJD_q7-B*Lx=wa z(YKNPc#Q7~T37IA>c@}DE&g!-sQoK{>wqM<2=#x a*oKZ@7%qRZsow=Vmp|rp|6Lqh82T@@*ESXa diff --git a/Stone_Red-C-Sharp-Utilities/bin/Debug/netstandard2.1/Stone_Red-C-Sharp-Utilities.pdb b/Stone_Red-C-Sharp-Utilities/bin/Debug/netstandard2.1/Stone_Red-C-Sharp-Utilities.pdb index 2e76cf3426906220cbc8fdba67d2c5c0fc58ec1d..eff74b9ede82b7c1fec9d6e6d87a56754164b2b9 100644 GIT binary patch delta 2586 zcmaJ@Yiv|S6h1Te?)H}5w!7Qyw%vBSkG_;g3$zjh6sV;NRt2#tLc^n7)@w?avbV|# zvKKTyf;5#2CAwCNHfoIGJAxvj_zMk6#H1=FVu;az;q}7@k@(HsTUZrsbIzRad~;^* zoHKLU*IRer*)V$pQ1K6@-I1P9&kYx_5i!G zut>8z3rB!GS-1v;Dg+*59cU(aZx((7xCm^9PZ3>{aoFMkF`86?$BkPj?5~5PH%hD} zZjQJucnjftj0KPo*=S;UEqsh>iPIM}%k(TWwGMr?Tsvh{v@J9Z>=1Ho>*mgWUXoXyE!wTA z*tV`C;a-y7n%ef4hV ztv3(4kZM+(%V+{uaA|mw`KfvTgB)@a&4wps?((rlv}ksB)|5Q1U;zmeP|5LJ!F{wRnH6d8F(d8V#c%Mj zF|F}f4DJ3h=Nnud8h6E#rr%%w?UCDK{Tr_Q=8rS2eNFyzm2bxmDg);Ou?vn8akb<- z#%6|kb68>xjV4-Nn;FJ?tn@dl%VXW~gr;^Rg2vIJV5)kd7VnNOy*1jov`tgHR85U0 z>aNRF`cnQ2M6Cu#M4<*xuxA_%$gKW?nv3ox4yivZ5{x6yZaf9i}FfV{9oRD7hqnWNk3sZC<=$fEb7)Ri>d?#d@S#|sPC(M?UO!HzkwI9T-X z1`%RHbIL#9bpE#~)9j+b%4$9!+hi6Yfu-af0dhJIWkwIoOTlZ+>abM zWpat_i@7Y5hp)3y5%0hilXB$VIOgE`xRMh2m=Aw)n0_pm<;>tp7v1NfCXpNorSkr( zfS0*o&wdvwJYQAVb9P4T(7=IRBWKtB`1FoHn;)O~;}7kL&Yu=Nw{qm3Mx=$gjML#M zcGC>OEH;`WC8-epII?j_r=KfGtwe6C6cJHM##OuxKEvGyn5<~TkfqsPYvy#eLlJS(_JN^-1(WU%rZH+k`m9W$7D(~j9G0b zaw!Op)my}s&9s*V-q~x`w5kd1f4^pDOQ`f%Y~q*ti?R2fl23dW|MsA-@vfQa4{D`? z`VD=j#`;g`58>YcW;_|$&KyR4<=f0@9IrgW@{B!I-xU3=Lk%|#w+y!qFE(DPo_|^9 K6Ck9aEe8a5`~XsaR-a1*;?xq9l_9EvIhU!nSm`kA<{pW?ux> zOCjBg8Bsxmf)x@43;I`9kbwk7^&gTiCSQA&3SO5d$wIa*_@t4S+{>pb9Voxq$w{RJji~ z^fy#Yd=aGs(>4u#wrT06OGA%cS~BEoC_i6|$$C2@J5UCAfnPwigV90YJa8NEIvITj zp6Br->x*r~z%-23qumVd0Cdn|>PCr_d_gbddgKN*&p<9N(iUjLB0a5YBhHtBpHQ_4 zx{@eHeK3}wVW~RMgas*jnc9$4^9*QZMU$$|g!X}-0gO0rR{QJFuV@Rj6IXF)r` zH>o-s`V_4vda4>ZFowYgRJ|Pf5_l(I!aysu^17(%Tz*np%AaZDKEF+Xr#vnfc4@VH zaFUUS1bR*0l;ca)IO>c&fx5<#Ow|vlXC1_p>Ow7bdQoScKGeH;anw2&5l`1i8HYl_ zj<7$lrA-QSg?pnk@le-ivzQyA5h-w>tR~pj6$(eBU`NEl$I~smw!oaTD{xdYGg-@I zBa@4mypGA+ncT#$7i^7XH%Q@7pmk@!-`XezyMt0N5Gm`3WVXmh*%pZkHn68mHEmwc_KO6Bi)#8X~vO^qKzU#=jE z%9@RWs6l&=AY{ykkLE-Cku+pd!}y? - + Console Extentions - + Writes the text representation of the specified object to the standard output stream. - + Writes the text representation of the specified object, followed by the current line terminator, to the standard output stream. + + + Specifies the severity of the log target. + + + + + Writes log to console + + + + + Writes log to debug console + + + + + Writes log to file + + + + + Writes log to console and file + + + + + Writes log to debug console and file + + + + + Writes log to console debug console and file + + + + + Specifies the severity of the log message. + + + + + Logs that contain the most detailed messages. + + + + + Logs that track the general flow of the application. + + + + + Logs that highlight an abnormal activity in the flow of execution. + + + + + Logs that highlight when the flow of execution is stopped due to a failure. + + + + + Logs that contain the most severe level of error. This type of error indicate that immediate attention may be required. + + + + + Class used for logging + + + + + Format that is used when logging to the console + + + + + Format that is used when logging to the debug console + + + + + Format that is used when logging to a file + + + + + Initializes the logger with the default format + + + + + + + + Initializes the logger with the default format + + + + + + + Log the message to the specified output + + + + + + + + + + + Log the message to the specified output when the condition is met + + + + + + + + + + + + Clears log file + + Extentions @@ -133,5 +261,22 @@ + + + Truncates a string to the specified length. + + + + + + + + Truncates a string to the specified length. + + + + + + diff --git a/Stone_Red-C-Sharp-Utilities/obj/Debug/netstandard2.1/Stone_Red-C-Sharp-Utilities.csproj.CoreCompileInputs.cache b/Stone_Red-C-Sharp-Utilities/obj/Debug/netstandard2.1/Stone_Red-C-Sharp-Utilities.csproj.CoreCompileInputs.cache index d88cd00..0b2c38d 100644 --- a/Stone_Red-C-Sharp-Utilities/obj/Debug/netstandard2.1/Stone_Red-C-Sharp-Utilities.csproj.CoreCompileInputs.cache +++ b/Stone_Red-C-Sharp-Utilities/obj/Debug/netstandard2.1/Stone_Red-C-Sharp-Utilities.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -720090d901031d5b30d715855746daa6aaddc3bc +5da8ee29e757543d794f5481de018812db6a323f diff --git a/Stone_Red-C-Sharp-Utilities/obj/Debug/netstandard2.1/Stone_Red-C-Sharp-Utilities.csproj.FileListAbsolute.txt b/Stone_Red-C-Sharp-Utilities/obj/Debug/netstandard2.1/Stone_Red-C-Sharp-Utilities.csproj.FileListAbsolute.txt index cdfce99..960ac7d 100644 --- a/Stone_Red-C-Sharp-Utilities/obj/Debug/netstandard2.1/Stone_Red-C-Sharp-Utilities.csproj.FileListAbsolute.txt +++ b/Stone_Red-C-Sharp-Utilities/obj/Debug/netstandard2.1/Stone_Red-C-Sharp-Utilities.csproj.FileListAbsolute.txt @@ -1,10 +1,10 @@ C:\Users\David\Google Drive\Programmieren\Stone_Red-C-Sharp-Utilities\Stone_Red-C-Sharp-Utilities\bin\Debug\netstandard2.1\Stone_Red-C-Sharp-Utilities.deps.json C:\Users\David\Google Drive\Programmieren\Stone_Red-C-Sharp-Utilities\Stone_Red-C-Sharp-Utilities\bin\Debug\netstandard2.1\Stone_Red-C-Sharp-Utilities.dll C:\Users\David\Google Drive\Programmieren\Stone_Red-C-Sharp-Utilities\Stone_Red-C-Sharp-Utilities\bin\Debug\netstandard2.1\Stone_Red-C-Sharp-Utilities.pdb -C:\Users\David\Google Drive\Programmieren\Stone_Red-C-Sharp-Utilities\Stone_Red-C-Sharp-Utilities\obj\Debug\netstandard2.1\Stone_Red-C-Sharp-Utilities.csprojAssemblyReference.cache C:\Users\David\Google Drive\Programmieren\Stone_Red-C-Sharp-Utilities\Stone_Red-C-Sharp-Utilities\obj\Debug\netstandard2.1\Stone_Red-C-Sharp-Utilities.AssemblyInfoInputs.cache C:\Users\David\Google Drive\Programmieren\Stone_Red-C-Sharp-Utilities\Stone_Red-C-Sharp-Utilities\obj\Debug\netstandard2.1\Stone_Red-C-Sharp-Utilities.AssemblyInfo.cs C:\Users\David\Google Drive\Programmieren\Stone_Red-C-Sharp-Utilities\Stone_Red-C-Sharp-Utilities\obj\Debug\netstandard2.1\Stone_Red-C-Sharp-Utilities.csproj.CoreCompileInputs.cache C:\Users\David\Google Drive\Programmieren\Stone_Red-C-Sharp-Utilities\Stone_Red-C-Sharp-Utilities\obj\Debug\netstandard2.1\Stone_Red-C-Sharp-Utilities.dll C:\Users\David\Google Drive\Programmieren\Stone_Red-C-Sharp-Utilities\Stone_Red-C-Sharp-Utilities\obj\Debug\netstandard2.1\Stone_Red-C-Sharp-Utilities.pdb C:\Users\David\Google Drive\Programmieren\Stone_Red-C-Sharp-Utilities\Stone_Red-C-Sharp-Utilities\bin\Debug\netstandard2.1\Stone_Red-C-Sharp-Utilities.xml +C:\Users\David\Google Drive\Programmieren\Stone_Red-C-Sharp-Utilities\Stone_Red-C-Sharp-Utilities\obj\Debug\netstandard2.1\Stone_Red-C-Sharp-Utilities.csprojAssemblyReference.cache diff --git a/Stone_Red-C-Sharp-Utilities/obj/Debug/netstandard2.1/Stone_Red-C-Sharp-Utilities.csprojAssemblyReference.cache b/Stone_Red-C-Sharp-Utilities/obj/Debug/netstandard2.1/Stone_Red-C-Sharp-Utilities.csprojAssemblyReference.cache index fd6301ff754f3e3118389637d6c41958dd57b0df..b9ceffab6708efb2d0109ad083ebeb2c67a906b4 100644 GIT binary patch delta 14 VcmZ3%yn=ayKO<8t_vApvZ~!471N{I1 delta 14 VcmZ3%yn=ayKO@sYmdSyP;Q%951X=(9 diff --git a/Stone_Red-C-Sharp-Utilities/obj/Debug/netstandard2.1/Stone_Red-C-Sharp-Utilities.dll b/Stone_Red-C-Sharp-Utilities/obj/Debug/netstandard2.1/Stone_Red-C-Sharp-Utilities.dll index 1b845a8add8a80517d3c07bf668a738bdb2cf765..690f13802c861fb283e535e7da45d74fda6f3fa9 100644 GIT binary patch literal 12288 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 TYjf~756|J4{>$tCUj+UaI6GzF delta 3721 zcma)9YiwM_75--KWA9zB*L!#ET|0j4+78LZYdbIUAQa?e6NjXA35g9h5Xi>fJivIJ zwIgDw${G>1K%q*w5wxYPDB@96CcDIL; z;+qrvT%_HtlsExeg5#pCp;yh%=R&>`77ot?=GFirc-CJYY?L(-Dq*9juow%jkk=D1BrzuxFpcQgFMquQ+}55Qw$)7fnV!ok;6|YZX-D(mQ}l* z@iQqovz;)L2`k&~nVuCSY{g`P9q$x=GiAVUVG}X@w9=%XQH?XJ;doW3Gi3X%L8H@p-Wdd+ zGrsL}#y12995Z;@=_&L0JtV_5LWjgihr2^M{#i?h$8RS?6=ZQP+sKL=xOAs@7UgQV zdl)W}Fg>$&#z(`5Xm334$#%^J78}}rG1>vM{gWm9}vN}j^po`5J8#ulGF2s$Qq#FA1em~p&Q`_K_-K1Q3 zj@m~}T+Sp}e~rZs+VEP3VD3tsjX!=E*j3Ro?*&#&s91vFI#ZR5 zWY-~Co$Z3{O2?gP@p+qsKeZg4ll6nPd&pnJo*%$X4OY7qx*1a)W7iQdg(Hqk>N#lS zp>{oB*xJisSvSlGKN8$ol_{UWu2aTeOyYzSpG_stNoQ;?bci*i%3)|?39;g0q?VXG zEz@(ds>aSyJ+oo)LM$SlNms z3csmwSZp#Ac$_zgjcYjc3>zN_g-u$1O3TMI4r$AETAr_Ql_=jsy6;$n9PpIU zW!w0Qy^nIjRF;>G6se~SC7*9AoM*mA|4}GeAd4MXs;B=*Doc&_e_Z=trP=N^6x+Sp zzt{XdmuMQB$lz#8*cdFcUV*3r5(-?;qOTq()|lNGgKUMUPbSkc~Q zr-gr1v?CZ1Aw1p6aU9qxt`;up+h(<+xLQ4yt+FDpJVsjs_0m6?{+dyT-kJl>wG`Kz^|ti%IOIr_i1fng5ad z8EJ`sG6w}t%iMp?R)b$OVle}I^_1^fXIf@`p3uDtCDNobaFm`Vp0r%_n1a`1k7=Pn z%dNyP77=4OSK}&;>os1iaR~hW#kh0jv`gb|VjZTm{3_lt(s&hbn(f3ZY@ay9qG*6vECk_r5BgeQfuUKz4jF1Z`QSN#p_0ixpTspBAznJ z``EOK{p`5Q+E4i?_H)>6)*W~Ri_P!jNjzlTO<56n^t?~|-$(mg`^R_|4a~y`J&&T6 zp2sOaZ{;bg-bc`3oMiRiY&jfxt{oGKIZ5m>n~ASj>9VG47i!`~!eL=tK#U+qjNw9J zE&7B+D>gAX*Q1|upOy!-JVe=H1TUa{H{}d3m7M6VU;_71Zp6dHb{r*Uag4YGQQ3|2 z&@9W{$ib)bWvnG`)_6HKQ6AQK4JIg0;Cb1jNpl*vYMj=1gT^Bo-_!`!Lr!Eg_GsLy zv61;u;L$vc6Y#|gIEHs}I0bWB<)nI;TjTB3o2Mow3)gn{?<^JaBf)!(Ew%l{ z*$)IX7y9y(I}zlY&I-i*#^BMWOES5g`O?7HuHoWHVg1lS%#1J`3&LA( z&=6m1aF`Pc8S#sy*T;CrFXk_E(G-)Ey*@e$Wfr2TI^;Of_?D*lkd*Pf1sRP-%?#pO zNYJD_q7-B*Lx=wa z(YKNPc#Q7~T37IA>c@}DE&g!-sQoK{>wqM<2=#x a*oKZ@7%qRZsow=Vmp|rp|6Lqh82T@@*ESXa diff --git a/Stone_Red-C-Sharp-Utilities/obj/Debug/netstandard2.1/Stone_Red-C-Sharp-Utilities.pdb b/Stone_Red-C-Sharp-Utilities/obj/Debug/netstandard2.1/Stone_Red-C-Sharp-Utilities.pdb index 2e76cf3426906220cbc8fdba67d2c5c0fc58ec1d..eff74b9ede82b7c1fec9d6e6d87a56754164b2b9 100644 GIT binary patch delta 2586 zcmaJ@Yiv|S6h1Te?)H}5w!7Qyw%vBSkG_;g3$zjh6sV;NRt2#tLc^n7)@w?avbV|# zvKKTyf;5#2CAwCNHfoIGJAxvj_zMk6#H1=FVu;az;q}7@k@(HsTUZrsbIzRad~;^* zoHKLU*IRer*)V$pQ1K6@-I1P9&kYx_5i!G zut>8z3rB!GS-1v;Dg+*59cU(aZx((7xCm^9PZ3>{aoFMkF`86?$BkPj?5~5PH%hD} zZjQJucnjftj0KPo*=S;UEqsh>iPIM}%k(TWwGMr?Tsvh{v@J9Z>=1Ho>*mgWUXoXyE!wTA z*tV`C;a-y7n%ef4hV ztv3(4kZM+(%V+{uaA|mw`KfvTgB)@a&4wps?((rlv}ksB)|5Q1U;zmeP|5LJ!F{wRnH6d8F(d8V#c%Mj zF|F}f4DJ3h=Nnud8h6E#rr%%w?UCDK{Tr_Q=8rS2eNFyzm2bxmDg);Ou?vn8akb<- z#%6|kb68>xjV4-Nn;FJ?tn@dl%VXW~gr;^Rg2vIJV5)kd7VnNOy*1jov`tgHR85U0 z>aNRF`cnQ2M6Cu#M4<*xuxA_%$gKW?nv3ox4yivZ5{x6yZaf9i}FfV{9oRD7hqnWNk3sZC<=$fEb7)Ri>d?#d@S#|sPC(M?UO!HzkwI9T-X z1`%RHbIL#9bpE#~)9j+b%4$9!+hi6Yfu-af0dhJIWkwIoOTlZ+>abM zWpat_i@7Y5hp)3y5%0hilXB$VIOgE`xRMh2m=Aw)n0_pm<;>tp7v1NfCXpNorSkr( zfS0*o&wdvwJYQAVb9P4T(7=IRBWKtB`1FoHn;)O~;}7kL&Yu=Nw{qm3Mx=$gjML#M zcGC>OEH;`WC8-epII?j_r=KfGtwe6C6cJHM##OuxKEvGyn5<~TkfqsPYvy#eLlJS(_JN^-1(WU%rZH+k`m9W$7D(~j9G0b zaw!Op)my}s&9s*V-q~x`w5kd1f4^pDOQ`f%Y~q*ti?R2fl23dW|MsA-@vfQa4{D`? z`VD=j#`;g`58>YcW;_|$&KyR4<=f0@9IrgW@{B!I-xU3=Lk%|#w+y!qFE(DPo_|^9 K6Ck9aEe8a5`~XsaR-a1*;?xq9l_9EvIhU!nSm`kA<{pW?ux> zOCjBg8Bsxmf)x@43;I`9kbwk7^&gTiCSQA&3SO5d$wIa*_@t4S+{>pb9Voxq$w{RJji~ z^fy#Yd=aGs(>4u#wrT06OGA%cS~BEoC_i6|$$C2@J5UCAfnPwigV90YJa8NEIvITj zp6Br->x*r~z%-23qumVd0Cdn|>PCr_d_gbddgKN*&p<9N(iUjLB0a5YBhHtBpHQ_4 zx{@eHeK3}wVW~RMgas*jnc9$4^9*QZMU$$|g!X}-0gO0rR{QJFuV@Rj6IXF)r` zH>o-s`V_4vda4>ZFowYgRJ|Pf5_l(I!aysu^17(%Tz*np%AaZDKEF+Xr#vnfc4@VH zaFUUS1bR*0l;ca)IO>c&fx5<#Ow|vlXC1_p>Ow7bdQoScKGeH;anw2&5l`1i8HYl_ zj<7$lrA-QSg?pnk@le-ivzQyA5h-w>tR~pj6$(eBU`NEl$I~smw!oaTD{xdYGg-@I zBa@4mypGA+ncT#$7i^7XH%Q@7pmk@!-`XezyMt0N5Gm`3WVXmh*%pZkHn68mHEmwc_KO6Bi)#8X~vO^qKzU#=jE z%9@RWs6l&=AY{ykkLE-Cku+pd!}y?