|
@@ -1,4 +1,5 @@
|
|
|
using System;
|
|
|
+using System.Linq;
|
|
|
|
|
|
namespace BepInEx.Logging
|
|
|
{
|
|
@@ -14,4 +15,43 @@ namespace BepInEx.Logging
|
|
|
Debug = 32,
|
|
|
All = Fatal | Error | Warning | Message | Info | Debug
|
|
|
}
|
|
|
+
|
|
|
+ public static class LogLevelExtensions
|
|
|
+ {
|
|
|
+ public static LogLevel GetHighestLevel(this LogLevel levels)
|
|
|
+ {
|
|
|
+ var enums = Enum.GetValues(typeof(LogLevel));
|
|
|
+ Array.Sort(enums);
|
|
|
+
|
|
|
+ foreach (LogLevel e in enums)
|
|
|
+ {
|
|
|
+ if ((levels & e) != LogLevel.None)
|
|
|
+ return e;
|
|
|
+ }
|
|
|
+
|
|
|
+ return LogLevel.None;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static ConsoleColor GetConsoleColor(this LogLevel level)
|
|
|
+ {
|
|
|
+ level = GetHighestLevel(level);
|
|
|
+
|
|
|
+ switch (level)
|
|
|
+ {
|
|
|
+ case LogLevel.Fatal:
|
|
|
+ return ConsoleColor.Red;
|
|
|
+ case LogLevel.Error:
|
|
|
+ return ConsoleColor.DarkRed;
|
|
|
+ case LogLevel.Warning:
|
|
|
+ return ConsoleColor.Yellow;
|
|
|
+ case LogLevel.Message:
|
|
|
+ return ConsoleColor.White;
|
|
|
+ case LogLevel.Info:
|
|
|
+ default:
|
|
|
+ return ConsoleColor.Gray;
|
|
|
+ case LogLevel.Debug:
|
|
|
+ return ConsoleColor.DarkGray;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|