Files
netch/Netch/Models/Loggers/ConsoleLogger.cs
ChsBuffer f6dfb25e3f Show Console NoActive
Implement ConsoleLogger.ShowLog()
2021-05-29 16:41:33 +08:00

54 lines
1.3 KiB
C#

using Netch.Interfaces;
using System;
using Vanara.PInvoke;
namespace Netch.Models.Loggers
{
public class ConsoleLogger : ILogger
{
public void Info(string text)
{
Write(text, LogLevel.INFO);
}
public void Warning(string text)
{
Write(text, LogLevel.WARNING);
}
public void Error(string text)
{
Write(text, LogLevel.ERROR);
}
private void Write(string text, LogLevel logLevel)
{
var contents = $@"[{DateTime.Now}][{logLevel.ToString()}] {text}{Constants.EOF}";
switch (logLevel)
{
case LogLevel.DEBUG:
case LogLevel.INFO:
case LogLevel.WARNING:
Console.Write(contents);
break;
case LogLevel.ERROR:
Console.Error.Write(contents);
break;
default:
throw new ArgumentOutOfRangeException(nameof(logLevel), logLevel, null);
}
}
public void Debug(string s)
{
#if DEBUG
Write(s, LogLevel.DEBUG);
#endif
}
public void ShowLog()
{
User32.ShowWindow(Netch.ConsoleHwnd, ShowWindowCommand.SW_SHOW);
}
}
}