mirror of
https://github.com/EpinelPS/EpinelPS.git
synced 2025-12-13 23:44:45 +01:00
66 lines
1.9 KiB
C#
66 lines
1.9 KiB
C#
using Swan.Logging;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace nksrv.Utils
|
|
{
|
|
public class GreatLogger : ILogger
|
|
{
|
|
public LogLevel LogLevel => LogLevel.Info;
|
|
static readonly object lockObject = new();
|
|
public void Log(LogMessageReceivedEventArgs logEvent)
|
|
{
|
|
var msg = logEvent.Message;
|
|
|
|
// strip out request id that embedio prints
|
|
if (msg.StartsWith('['))
|
|
{
|
|
msg = msg[(msg.IndexOf("]") + 2)..];
|
|
}
|
|
|
|
// ignore telemtry server errors
|
|
if (msg.StartsWith("POST /v2/dr/"))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var newFG = GetColorForMsg(logEvent);
|
|
|
|
lock (lockObject)
|
|
{
|
|
var oldFG = Console.ForegroundColor;
|
|
Console.ForegroundColor = newFG;
|
|
Console.WriteLine(msg);
|
|
Console.ForegroundColor = oldFG;
|
|
}
|
|
|
|
}
|
|
|
|
private static ConsoleColor GetColorForMsg(LogMessageReceivedEventArgs logEvent)
|
|
{
|
|
if (logEvent.Message.Contains("404 Not Found"))
|
|
return ConsoleColor.Red;
|
|
else if (logEvent.Message.Contains("200 OK"))
|
|
return ConsoleColor.DarkGreen;
|
|
return logEvent.MessageType switch
|
|
{
|
|
LogLevel.None => ConsoleColor.White,
|
|
LogLevel.Trace => ConsoleColor.Gray,
|
|
LogLevel.Debug => ConsoleColor.Gray,
|
|
LogLevel.Info => ConsoleColor.Gray,
|
|
LogLevel.Warning => ConsoleColor.Yellow,
|
|
LogLevel.Error => ConsoleColor.Red,
|
|
LogLevel.Fatal => ConsoleColor.Red,
|
|
_ => ConsoleColor.White,
|
|
};
|
|
}
|
|
public void Dispose()
|
|
{
|
|
GC.SuppressFinalize(this);
|
|
}
|
|
}
|
|
}
|