24 lines
729 B
C#
24 lines
729 B
C#
namespace SimpleTGBot.Logging;
|
|
|
|
internal class StdoutSink : ILogSink
|
|
{
|
|
private readonly ConsoleColor[] colors = [ConsoleColor.White, ConsoleColor.Cyan, ConsoleColor.Yellow, ConsoleColor.DarkRed, ConsoleColor.Red];
|
|
private ConsoleColor originalConsoleColor;
|
|
|
|
public StdoutSink()
|
|
{
|
|
originalConsoleColor = Console.ForegroundColor;
|
|
}
|
|
|
|
public void Log(DateTime time, LogLevel level, string message)
|
|
{
|
|
Console.ForegroundColor = colors[(int)level];
|
|
foreach (string line in message.Split(Environment.NewLine))
|
|
Console.WriteLine($"({time:u}) [{level.GetName()}] {line}");
|
|
}
|
|
|
|
public void Dispose() {
|
|
Console.ForegroundColor = originalConsoleColor;
|
|
}
|
|
}
|