76 lines
2.7 KiB
C#
76 lines
2.7 KiB
C#
using System;
|
|
using System.IO;
|
|
|
|
namespace CarCombiner {
|
|
public static class Log {
|
|
|
|
public static bool EnableLogging { get; set; } = true;
|
|
|
|
private static bool OpenWrite = false;
|
|
|
|
private static void WriteScaffolding(string text, ConsoleColor color, TextWriter stream) {
|
|
Console.ForegroundColor = ConsoleColor.Gray;
|
|
Console.Write("[");
|
|
Console.ForegroundColor = color;
|
|
Console.Write(text);
|
|
Console.ForegroundColor = ConsoleColor.Gray;
|
|
Console.Write("] >> ");
|
|
}
|
|
|
|
public static void WriteLine(object message, ConsoleColor color = ConsoleColor.Gray) {
|
|
if (!EnableLogging) return;
|
|
if (OpenWrite) Console.WriteLine();
|
|
WriteScaffolding("INFO", ConsoleColor.Cyan, Console.Out);
|
|
Console.ForegroundColor = color;
|
|
Console.WriteLine(message);
|
|
Console.ResetColor();
|
|
OpenWrite = false;
|
|
}
|
|
|
|
public static void Write(object message, ConsoleColor color = ConsoleColor.Gray) {
|
|
if (!EnableLogging) return;
|
|
if (OpenWrite) Console.WriteLine();
|
|
WriteScaffolding("INFO", ConsoleColor.Cyan, Console.Out);
|
|
Console.ForegroundColor = color;
|
|
Console.Write(message);
|
|
OpenWrite = true;
|
|
}
|
|
|
|
public static void CompleteWrite(object message) {
|
|
if (!EnableLogging || !OpenWrite) return;
|
|
Console.WriteLine(message);
|
|
Console.ResetColor();
|
|
OpenWrite = false;
|
|
}
|
|
|
|
public static void WriteWarning(object message, ConsoleColor color = ConsoleColor.Gray) {
|
|
if (!EnableLogging) return;
|
|
if (OpenWrite) Console.WriteLine();
|
|
WriteScaffolding("WARNING", ConsoleColor.Yellow, Console.Out);
|
|
Console.ForegroundColor = color;
|
|
Console.WriteLine(message);
|
|
Console.ResetColor();
|
|
OpenWrite = false;
|
|
}
|
|
|
|
public static void WriteError(object message, ConsoleColor color = ConsoleColor.Red) {
|
|
if (OpenWrite) Console.WriteLine();
|
|
WriteScaffolding("ERROR", ConsoleColor.Red, Console.Error);
|
|
Console.ForegroundColor = color;
|
|
Console.WriteLine(message);
|
|
Console.ResetColor();
|
|
OpenWrite = false;
|
|
}
|
|
|
|
public static string RequestInput(string text) {
|
|
if (OpenWrite) Console.WriteLine();
|
|
Console.WriteLine("\n" + text);
|
|
Console.Write("> ");
|
|
string answer = Console.ReadLine();
|
|
Console.WriteLine();
|
|
OpenWrite = false;
|
|
return answer;
|
|
}
|
|
|
|
}
|
|
} |