| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- using Ryujinx.HLE.Logging;
- using System;
- using System.Collections.Generic;
- using System.Threading;
- namespace Ryujinx
- {
- static class ConsoleLog
- {
- private static Dictionary<LogLevel, ConsoleColor> LogColors;
- private static object ConsoleLock;
- static ConsoleLog()
- {
- LogColors = new Dictionary<LogLevel, ConsoleColor>()
- {
- { LogLevel.Stub, ConsoleColor.DarkGray },
- { LogLevel.Info, ConsoleColor.White },
- { LogLevel.Warning, ConsoleColor.Yellow },
- { LogLevel.Error, ConsoleColor.Red }
- };
- ConsoleLock = new object();
- }
- public static void PrintLog(object sender, LogEventArgs e)
- {
- string FormattedTime = e.Time.ToString(@"hh\:mm\:ss\.fff");
- string CurrentThread = Thread.CurrentThread.ManagedThreadId.ToString("d4");
- string Message = FormattedTime + " | " + CurrentThread + " " + e.Message;
- if (LogColors.TryGetValue(e.Level, out ConsoleColor Color))
- {
- lock (ConsoleLock)
- {
- Console.ForegroundColor = Color;
- Console.WriteLine(Message);
- Console.ResetColor();
- }
- }
- else
- {
- Console.WriteLine(Message);
- }
- }
- }
- }
|