Implement new TaskQueue and add LogFormatBuilder

This commit is contained in:
Stone_Red
2024-03-14 11:23:32 +01:00
parent df7a14bd6e
commit cb6d3f9271
11 changed files with 670 additions and 240 deletions
+26 -14
View File
@@ -1,10 +1,9 @@
using Stone_Red_C_Sharp_Utilities;
using Stone_Red_C_Sharp_Utilities.Logging;
using Stone_Red_C_Sharp_Utilities.Logging;
using Stone_Red_C_Sharp_Utilities.Tasks;
using Stone_Red_Utilities.Logging;
using System;
using System.Threading;
using System.Threading.Tasks;
namespace Stone_Red_C_Sharp_Utilities_Test
@@ -17,45 +16,58 @@ namespace Stone_Red_C_Sharp_Utilities_Test
{
FatalConfig = new OutputConfig()
{
Color = ConsoleColor.DarkRed,
ConsoleColor = ConsoleColor.DarkRed,
LogTarget = LogTarget.Console | LogTarget.DebugConsole | LogTarget.File
},
ErrorConfig = new OutputConfig()
{
Color = ConsoleColor.Red,
ConsoleColor = ConsoleColor.Red,
LogTarget = LogTarget.Console | LogTarget.DebugConsole | LogTarget.File
},
WarnConfig = new OutputConfig()
{
Color = ConsoleColor.Yellow,
ConsoleColor = ConsoleColor.Yellow,
LogTarget = LogTarget.Console | LogTarget.DebugConsole | LogTarget.File
},
InfoConfig = new OutputConfig()
{
Color = ConsoleColor.White,
ConsoleColor = ConsoleColor.White,
LogTarget = LogTarget.Console | LogTarget.DebugConsole | LogTarget.File
},
DebugConfig = new OutputConfig()
{
Color = ConsoleColor.Gray,
ConsoleColor = ConsoleColor.Gray,
LogTarget = LogTarget.Console | LogTarget.DebugConsole
},
FormatConfig = new FormatConfig()
{
ConsoleFormat = $"{{{LogFormatType.DateTime}:HH:mm:ss}} | {{{LogFormatType.LogSeverity},-5}} | {{{LogFormatType.Message}}}"
//ConsoleFormat = $"{{{LogFormatType.DateTime}:HH:mm:ss}} | {{{LogFormatType.LogSeverity},-5}} | {{{LogFormatType.Message}}}"
ConsoleFormat = new LogFormatBuilder().DateTime("HH:mm:ss").Text(" | ").LogSeverity(padding: -5).Text(" | ").Message()
}
}
};
private static async Task Main()
private static void Main()
{
TaskQueue taskQueue = new TaskQueue();
await taskQueue.Enqueue(() => Console.WriteLine("YES1"));
await taskQueue.Enqueue(() => Console.WriteLine("YES2"));
await taskQueue.Enqueue(() => Thread.Sleep(2000));
await taskQueue.Enqueue(() => Console.WriteLine("YES3"));
_ = taskQueue.Enqueue(CreateTask(0, 1000)).Subscribe((Task t) => logger.LogInfo("Task 0 completed"));
_ = taskQueue.Enqueue(CreateTask(1, 100)).Subscribe((Task t) => logger.LogInfo("Task 1 completed"));
_ = taskQueue.Enqueue(CreateTask(2, 2000)).Subscribe((Task t) => logger.LogInfo("Task 2 completed"));
_ = taskQueue.Enqueue(CreateTask(3, 500)).Subscribe((Task t) => logger.LogInfo("Task 3 completed"));
logger.Log("wow", LogSeverity.Info);
_ = Console.ReadLine();
}
private static Task CreateTask(int i, int delay)
{
return new Task(async () =>
{
logger.LogInfo($"Start task {i}");
await Task.Delay(delay);
logger.LogInfo($"End task {i}");
});
}
}
}