// Интерфейс для логирования событий
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);
}
}