Logger.cs 1.32 KB
namespace HHECS.DAQHandle
{
    internal static class Logger
    {
        private static readonly object lockObj = new object();
        private static void Print(string message, LogType type = LogType.Info)
        {
            lock (lockObj)
            {
                Console.Write('[');
                Console.ForegroundColor = type switch
                {
                    LogType.Success => ConsoleColor.DarkGreen,
                    LogType.Info => ConsoleColor.DarkBlue,
                    LogType.Warn => ConsoleColor.DarkYellow,
                    LogType.Error => ConsoleColor.DarkRed,
                    _ => default
                };
                Console.Write($"{type}");
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write(']');
                Console.WriteLine($" {DateTime.Now} {message}");
            }
        }

        public static void PrintInfo(string message)
        {
            Print(message, LogType.Info);
        }

        public static void PrintWarn(string message)
        {
            Print(message, LogType.Warn);
        }

        public static void PrintError(string message)
        {
            Print(message, LogType.Error);
        }
    }

    public enum LogType
    {
        Success,
        Info,
        Warn,
        Error
    }
}