Вывод в текстовый лог и консоль


    // Интерфейс для логирования событий
    public interface LogInterface
    {
        // Информационное сообщение
        void Info(string str);
        // Сообщение
        void Message(string str);
        // Ошибка
        void Error(string str);
    }

   
    // Класс для вывода событий в консоль и лог
    public class LogConsole : LogInterface
    {
        private readonly ILog log;
        private readonly string name;
        private readonly ConsoleColor consoleColor  = ConsoleColor.White;
        public LogConsole(string name, ConsoleColor consoleColor)
        {
            this.name = name;
            this.consoleColor = consoleColor;
            log = LogManager.GetLogger(name);
            XmlConfigurator.Configure();            
        }
        // Информационное сообщение
        public void Info(string str)
        {
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine(DateTime.Now.ToLongTimeString() + " "  + name + ": " + str);
            log.Info(name + ": " + str);
        }
        // Сообщение
        public void Message(string str)
        {
            Console.ForegroundColor = consoleColor;
            Console.WriteLine(DateTime.Now.ToLongTimeString() + " " + name + ": " + str);
            log.Info(name + ": " + str);
        }
        // Ошибка
        public void Error(string str)
        {
            Console.ForegroundColor = ConsoleColor.DarkRed;
            Console.WriteLine(DateTime.Now.ToLongTimeString() + " " + name + ": " + str);
            log.Error(name + ": " + str);
        }
    }