DTLib/Loggers/DefaultLogger.cs
2022-01-14 00:04:06 +03:00

38 lines
1.2 KiB
C#

namespace DTLib.Loggers;
// вывод лога в консоль и файл
public class DefaultLogger : BaseLogger
{
public DefaultLogger() => Logfile = "";
public DefaultLogger(string logfile) : base(logfile) { }
public DefaultLogger(string dir, string programName) : base(dir, programName) { }
public override void Log(params string[] msg)
{
lock (Logfile) if (!IsEnabled) return;
if (msg.Length == 1) msg[0] = "[" + DateTime.Now.ToString() + "]: " + msg[0];
else msg[1] = "[" + DateTime.Now.ToString() + "]: " + msg[1];
LogNoTime(msg);
}
public void LogNoTime(params string[] msg)
{
lock (Logfile) if (!IsEnabled) return;
msg[msg.Length - 1] += '\n';
ColoredConsole.Write(msg);
if (WriteToFile)
{
if (msg.Length == 1)
lock (Logfile) File.AppendAllText(Logfile, msg[0]);
else
{
StringBuilder strB = new();
for (ushort i = 0; i < msg.Length; i++)
strB.Append(msg[++i]);
lock (Logfile) File.AppendAllText(Logfile, strB.ToString());
}
}
}
}