From 80964f193f4013725f69d2bf227c7834c591b7a2 Mon Sep 17 00:00:00 2001 From: Timerix22 Date: Fri, 18 Nov 2022 02:23:20 +0600 Subject: [PATCH] LoggerExtensions --- DTLib.Logging/Loggers/CompositeLogger.cs | 4 --- DTLib.Logging/Loggers/ConsoleLogger.cs | 3 -- DTLib.Logging/Loggers/FileLogger.cs | 8 ++--- DTLib.Logging/Loggers/ILogger.cs | 1 - DTLib.Tests/Dtsod/TestAutoarr.cs | 14 ++++----- DTLib.Tests/Dtsod/TestDtsodV23.cs | 38 ++++++++++++------------ DTLib.Tests/Dtsod/TestDtsodV24.cs | 32 ++++++++++---------- DTLib.Tests/Dtsod/TestPInvoke.cs | 14 ++++----- DTLib.Tests/Program.cs | 9 +++--- 9 files changed, 56 insertions(+), 67 deletions(-) diff --git a/DTLib.Logging/Loggers/CompositeLogger.cs b/DTLib.Logging/Loggers/CompositeLogger.cs index aacca48..256bc6a 100644 --- a/DTLib.Logging/Loggers/CompositeLogger.cs +++ b/DTLib.Logging/Loggers/CompositeLogger.cs @@ -32,10 +32,6 @@ public class CompositeLogger : ILogger _loggers[i].Log(context, severity, message, format); } - public void Log(string context, LogSeverity severity, object message) - => Log(context, severity, message, Format); - - public void Dispose() { for (int i = 0; i < _loggers.Length; i++) diff --git a/DTLib.Logging/Loggers/ConsoleLogger.cs b/DTLib.Logging/Loggers/ConsoleLogger.cs index fc7c707..3ffe8dd 100644 --- a/DTLib.Logging/Loggers/ConsoleLogger.cs +++ b/DTLib.Logging/Loggers/ConsoleLogger.cs @@ -27,9 +27,6 @@ public class ConsoleLogger : ILogger lock (consolelocker) ColoredConsole.Write(ColorFromSeverity(severity),msg); } - - public void Log(string context, LogSeverity severity, object message) - => Log(context, severity, message, Format); private static ConsoleColor ColorFromSeverity(LogSeverity severity) => severity switch diff --git a/DTLib.Logging/Loggers/FileLogger.cs b/DTLib.Logging/Loggers/FileLogger.cs index 3489be8..459d3c6 100644 --- a/DTLib.Logging/Loggers/FileLogger.cs +++ b/DTLib.Logging/Loggers/FileLogger.cs @@ -33,23 +33,19 @@ public class FileLogger : ILogger if(!this.CheckSeverity(severity)) return; - var msg = format.CreateMessage(context, severity, format).ToBytes(StringConverter.UTF8); + var msg = format.CreateMessage(context, severity, message); lock (LogfileStream) { - LogfileStream.Write(msg); + LogfileStream.Write(msg.ToBytes(StringConverter.UTF8)); LogfileStream.Flush(); } } - - public void Log(string context, LogSeverity severity, object message) - => Log(context, severity, message, Format); public virtual void Dispose() { try { LogfileStream?.Flush(); - LogfileStream?.Close(); LogfileStream?.Dispose(); } catch (ObjectDisposedException) { } diff --git a/DTLib.Logging/Loggers/ILogger.cs b/DTLib.Logging/Loggers/ILogger.cs index e2643d9..ab6eedf 100644 --- a/DTLib.Logging/Loggers/ILogger.cs +++ b/DTLib.Logging/Loggers/ILogger.cs @@ -9,7 +9,6 @@ public interface ILogger : IDisposable bool WarnLogEnabled { get; set; } bool ErrorLogenabled { get; set; } - void Log(string context, LogSeverity severity, object message); void Log(string context, LogSeverity severity, object message, ILogFormat format); } \ No newline at end of file diff --git a/DTLib.Tests/Dtsod/TestAutoarr.cs b/DTLib.Tests/Dtsod/TestAutoarr.cs index cbeaa9d..0605159 100644 --- a/DTLib.Tests/Dtsod/TestAutoarr.cs +++ b/DTLib.Tests/Dtsod/TestAutoarr.cs @@ -15,24 +15,24 @@ public static class TestAutoarr public static void Fill(Autoarr ar) { - Info.Log("c", "----------[TestAutoarr/Fill]----------"); + OldLogger.Log("c", "----------[TestAutoarr/Fill]----------"); for(uint i=0;i ar) { - Info.Log("c", "----------[TestAutoarr/Print]---------"); + OldLogger.Log("c", "----------[TestAutoarr/Print]---------"); foreach (KVPair pair in ar) - Info.Log("h", pair.ToString()); - Info.Log("g", "test completed"); + OldLogger.Log("h", pair.ToString()); + OldLogger.Log("g", "test completed"); } public static void Free(Autoarr ar) { - Info.Log("c", "----------[TestAutoarr/Free]----------"); + OldLogger.Log("c", "----------[TestAutoarr/Free]----------"); ar.Dispose(); - Info.Log("g", "test completed"); + OldLogger.Log("g", "test completed"); } } \ No newline at end of file diff --git a/DTLib.Tests/Dtsod/TestDtsodV23.cs b/DTLib.Tests/Dtsod/TestDtsodV23.cs index c397943..5f7ac9a 100644 --- a/DTLib.Tests/Dtsod/TestDtsodV23.cs +++ b/DTLib.Tests/Dtsod/TestDtsodV23.cs @@ -16,73 +16,73 @@ public static class TestDtsodV23 public static void TestBaseTypes() { - Info.Log("c", "-----[TestDtsodV23/TestBaseTypes]-----"); + OldLogger.Log("c", "-----[TestDtsodV23/TestBaseTypes]-----"); DtsodV23 dtsod = new(File.ReadAllText($"Dtsod{Путь.Разд}TestResources{Путь.Разд}DtsodV23{Путь.Разд}base_types.dtsod")); foreach (var pair in dtsod) - Info.Log("b", pair.Value.GetType().Name + ' ', "w", pair.Key + ' ', "c", pair.Value.ToString()); - Info.Log("g", "test completed"); + OldLogger.Log("b", pair.Value.GetType().Name + ' ', "w", pair.Key + ' ', "c", pair.Value.ToString()); + OldLogger.Log("g", "test completed"); } public static void TestLists() { - Info.Log("c", "-------[TestDtsodV23/TestLists]-------"); + OldLogger.Log("c", "-------[TestDtsodV23/TestLists]-------"); DtsodV23 dtsod = new(File.ReadAllText($"Dtsod{Путь.Разд}TestResources{Путь.Разд}DtsodV23{Путь.Разд}lists.dtsod")); foreach (var pair in dtsod) { - Info.Log("b", pair.Value.GetType().Name + ' ', "w", pair.Key, "c", + OldLogger.Log("b", pair.Value.GetType().Name + ' ', "w", pair.Key, "c", $" count: {pair.Value.Count}"); foreach (var el in pair.Value) - Info.Log("b", '\t'+el.GetType().Name + ' ', "c", el.ToString()); + OldLogger.Log("b", '\t'+el.GetType().Name + ' ', "c", el.ToString()); } - Info.Log("g", "test completed"); + OldLogger.Log("g", "test completed"); } public static void TestComplexes() { - Info.Log("c", "-----[TestDtsodV23/TestComplexes]-----"); + OldLogger.Log("c", "-----[TestDtsodV23/TestComplexes]-----"); DtsodV23 dtsod = new(File.ReadAllText($"Dtsod{Путь.Разд}TestResources{Путь.Разд}DtsodV23{Путь.Разд}complexes.dtsod")); foreach (var complex in dtsod) { - Info.Log("b", complex.Value.GetType().Name + ' ', "w", complex.Key, + OldLogger.Log("b", complex.Value.GetType().Name + ' ', "w", complex.Key, "b", " size: ", "c", complex.Value.Keys.Count.ToString()); foreach (var pair in (DtsodV23) complex.Value) - Info.Log("b", '\t' + pair.Value.GetType().Name + ' ', "w", pair.Key + ' ', + OldLogger.Log("b", '\t' + pair.Value.GetType().Name + ' ', "w", pair.Key + ' ', "c", pair.Value.ToString()); } - Info.Log("g", "test completed"); + OldLogger.Log("g", "test completed"); } public static void TestReSerialization() { - Info.Log("c", "--[TestDtsodV23/TestReSerialization]--"); + OldLogger.Log("c", "--[TestDtsodV23/TestReSerialization]--"); var dtsod = new DtsodV23(new DtsodV23(new DtsodV23( new DtsodV23(File.ReadAllText($"Dtsod{Путь.Разд}TestResources{Путь.Разд}DtsodV23{Путь.Разд}complexes.dtsod")).ToString()).ToString()).ToString()); - Info.Log("y", dtsod.ToString()); - Info.Log("g", "test completed"); + OldLogger.Log("y", dtsod.ToString()); + OldLogger.Log("g", "test completed"); } public static void TestSpeed() { - Info.Log("c", "-------[TestDtsodV23/TestSpeed]-------"); + OldLogger.Log("c", "-------[TestDtsodV23/TestSpeed]-------"); IDtsod dtsod=null; string text = File.ReadAllText($"Dtsod{Путь.Разд}TestResources{Путь.Разд}DtsodV23{Путь.Разд}messages.dtsod"); LogOperationTime("V21 deserialization",64,()=>dtsod=new DtsodV21(text)); LogOperationTime("V21 serialization", 64, () => _=dtsod.ToString()); LogOperationTime("V23 deserialization", 64, () => dtsod = new DtsodV23(text)); LogOperationTime("V23 serialization", 64, () => _ = dtsod.ToString()); - Info.Log("g", "test completed"); + OldLogger.Log("g", "test completed"); } public static void TestMemoryConsumption() { - Info.Log("c", "----[TestDtsodV23/TestMemConsumpt]----"); + OldLogger.Log("c", "----[TestDtsodV23/TestMemConsumpt]----"); string text = File.ReadAllText($"Dtsod{Путь.Разд}TestResources{Путь.Разд}DtsodV23{Путь.Разд}messages.dtsod"); var a = GC.GetTotalMemory(true); var dtsods = new DtsodV23[64]; for (int i = 0; i < dtsods.Length; i++) dtsods[i] = new(text); var b = GC.GetTotalMemory(true); - Info.Log("b", "at the start: ","c",$"{a/1024} kb\n", + OldLogger.Log("b", "at the start: ","c",$"{a/1024} kb\n", "b", "at the end: ", "c", $"{b / 1024} kb\n{dtsods.Count()}","b"," dtsods initialized"); - Info.Log("g", "test completed"); + OldLogger.Log("g", "test completed"); } } diff --git a/DTLib.Tests/Dtsod/TestDtsodV24.cs b/DTLib.Tests/Dtsod/TestDtsodV24.cs index f5d829b..5e840bb 100644 --- a/DTLib.Tests/Dtsod/TestDtsodV24.cs +++ b/DTLib.Tests/Dtsod/TestDtsodV24.cs @@ -17,57 +17,57 @@ public static class TestDtsodV24 public static void TestBaseTypes() { - Info.Log("c", "-----[TestDtsodV24/TestBaseTypes]-----"); + OldLogger.Log("c", "-----[TestDtsodV24/TestBaseTypes]-----"); DtsodV24 dtsod = new(File.ReadAllText($"Dtsod{Путь.Разд}TestResources{Путь.Разд}DtsodV24{Путь.Разд}base_types.dtsod")); foreach (var pair in dtsod) - Info.Log("b", pair.ToString()); - Info.Log("g", "test completed"); + OldLogger.Log("b", pair.ToString()); + OldLogger.Log("g", "test completed"); } public static void TestComplexes() { - Info.Log("c", "-----[TestDtsodV24/TestComplexes]-----"); + OldLogger.Log("c", "-----[TestDtsodV24/TestComplexes]-----"); DtsodV24 dtsod = new(File.ReadAllText($"Dtsod{Путь.Разд}TestResources{Путь.Разд}DtsodV24{Путь.Разд}complexes.dtsod")); - Info.Log("h", dtsod.ToString()); - Info.Log("g", "test completed"); + OldLogger.Log("h", dtsod.ToString()); + OldLogger.Log("g", "test completed"); } public static void TestLists() { - Info.Log("c", "-------[TestDtsodV24/TestLists]-------"); + OldLogger.Log("c", "-------[TestDtsodV24/TestLists]-------"); DtsodV24 dtsod = new(File.ReadAllText($"Dtsod{Путь.Разд}TestResources{Путь.Разд}DtsodV24{Путь.Разд}lists.dtsod")); foreach (KVPair pair in dtsod) { var list = new Autoarr(pair.value.VoidPtr, false); - Info.Log("b", pair.key.HGlobalUTF8ToString(), "w", $" length: {list.Length}"); + OldLogger.Log("b", pair.key.HGlobalUTF8ToString(), "w", $" length: {list.Length}"); foreach (var el in list) { - Info.Log("h", '\t' + el.ToString()); + OldLogger.Log("h", '\t' + el.ToString()); if (el.TypeCode == KerepTypeCode.AutoarrUnitypePtr) { var ar = new Autoarr(el.VoidPtr, false); foreach (var k in ar) { - Info.Log($"\t\t{k.ToString()}"); + OldLogger.Log($"\t\t{k.ToString()}"); } } } } - Info.Log("g", "test completed"); + OldLogger.Log("g", "test completed"); } public static void TestReSerialization() { - Info.Log("c", "--[TestDtsodV24/TestReSerialization]--"); + OldLogger.Log("c", "--[TestDtsodV24/TestReSerialization]--"); var dtsod = new DtsodV24(new DtsodV24(new DtsodV24( new DtsodV24(File.ReadAllText($"Dtsod{Путь.Разд}TestResources{Путь.Разд}DtsodV24{Путь.Разд}complexes.dtsod")).ToString()).ToString()).ToString()); - Info.Log("h", dtsod.ToString()); - Info.Log("g", "test completed"); + OldLogger.Log("h", dtsod.ToString()); + OldLogger.Log("g", "test completed"); } public static void TestSpeed() { - Info.Log("c", "-------[TestDtsodV24/TestSpeed]-------"); + OldLogger.Log("c", "-------[TestDtsodV24/TestSpeed]-------"); IDtsod dtsod=null; string _text = File.ReadAllText($"Dtsod{Путь.Разд}TestResources{Путь.Разд}DtsodV23{Путь.Разд}messages.dtsod"); string text = ""; @@ -77,6 +77,6 @@ public static class TestDtsodV24 File.WriteAllText($"Dtsod{Путь.Разд}TestResources{Путь.Разд}DtsodV24{Путь.Разд}messages.dtsod",text); LogOperationTime("V24 deserialization", 64, () => dtsod = new DtsodV24(text)); LogOperationTime("V24 serialization", 64, () => text = dtsod.ToString()); - Info.Log("g", "test completed"); + OldLogger.Log("g", "test completed"); } } \ No newline at end of file diff --git a/DTLib.Tests/Dtsod/TestPInvoke.cs b/DTLib.Tests/Dtsod/TestPInvoke.cs index f95b199..8c8caa8 100644 --- a/DTLib.Tests/Dtsod/TestPInvoke.cs +++ b/DTLib.Tests/Dtsod/TestPInvoke.cs @@ -16,7 +16,7 @@ public static class TestPInvoke static public void TestUTF8() { - Info.Log("c", "--------[TestPInvoke/TestUTF8]--------", "b", ""); + OldLogger.Log("c", "--------[TestPInvoke/TestUTF8]--------", "b", ""); IntPtr ptr; string str="_$\"\\\\'''\ta ыыы000;2;=:%d;```"; for(int i=0; i<1000; i++) @@ -24,7 +24,7 @@ public static class TestPInvoke ptr = Unmanaged.StringToHGlobalUTF8(str); str = Unmanaged.HGlobalUTF8ToString(ptr); } - Info.Log("y", str); + OldLogger.Log("y", str); } [DllImport("kerep", CallingConvention = CallingConvention.Cdecl)] @@ -32,9 +32,9 @@ public static class TestPInvoke public static void TestPrintf() { - Info.Log("c", "---------[TestPInvoke/Printf]---------", "b", ""); + OldLogger.Log("c", "---------[TestPInvoke/Printf]---------", "b", ""); pinvoke_print("ъъ~ 中文"); - Info.Log("g", "test completed"); + OldLogger.Log("g", "test completed"); } [DllImport("kerep", CallingConvention = CallingConvention.Cdecl)] @@ -42,11 +42,11 @@ public static class TestPInvoke public static unsafe void TestMarshalling() { - Info.Log("c", "---------[TestAutoarr/TestMarshalling]----------"); + OldLogger.Log("c", "---------[TestAutoarr/TestMarshalling]----------"); string msg = "ъъ~ 中文"; test_marshalling(msg, out var kptr); KVPair k = *(KVPair*)kptr; - Info.Log("b", k.ToString()); - Info.Log("g", "test completed"); + OldLogger.Log("b", k.ToString()); + OldLogger.Log("g", "test completed"); } } \ No newline at end of file diff --git a/DTLib.Tests/Program.cs b/DTLib.Tests/Program.cs index a30fcb4..a5f58f3 100644 --- a/DTLib.Tests/Program.cs +++ b/DTLib.Tests/Program.cs @@ -10,17 +10,18 @@ global using DTLib.Filesystem; global using DTLib.Dtsod; global using static DTLib.Tests.TesterLog; global using static DTLib.Tests.Program; -using DTLib.Logging; +using DTLib.Logging.New; namespace DTLib.Tests; public static class Program { - public static readonly ConsoleLogger Info = new("logs", "DTLib.Tests"); + public static readonly Logging.ConsoleLogger OldLogger = new("logs", "DTLib.Tests"); + public static readonly ILogger NewLogger = new CompositeLogger(new ConsoleLogger(), new FileLogger(OldLogger.LogfileName)); public static void Main() { - PublicLog.LogEvent += Info.Log; + Logging.PublicLog.LogEvent += OldLogger.Log; Console.OutputEncoding = Encoding.UTF8; Console.InputEncoding = Encoding.UTF8; Console.Title="tester"; @@ -32,7 +33,7 @@ public static class Program TestDtsodV24.TestAll(); } catch (Exception ex) - { Info.Log("r", ex.ToString()); } + { NewLogger.LogException("Main", ex); } Console.ResetColor(); } } \ No newline at end of file