Logger.cs 1.02 KB
using System;
using System.IO;

namespace MoyaSignup
{
    public enum LogLevel
    {
        Debug,
        Info,
        Error
    }

    public static class Logger
    {
        private static readonly StreamWriter LogWriter;

        static Logger()
        {
            LogWriter = File.AppendText("log.txt");
        }

        public static void Log(LogLevel level, string message)
        {
            LogWriter.Write("[{0}] [{1}] {2}", 
                string.Format("{0} {1}", DateTime.UtcNow.ToLongTimeString(), DateTime.UtcNow.ToLongDateString()), 
                level, 
                message + '\n'
            );
            LogWriter.Flush();
        }

        public static void Debug(string message) => Log(LogLevel.Debug, message);

        public static void Info(string message) => Log(LogLevel.Info, message);

        public static void Error(string message) => Log(LogLevel.Error, message);

        public static void Error(string message, Exception ex) => Log(LogLevel.Error, message + ":\n" + ex);
    }
}