internal static void Cleanup() { if (_logWriter != null) { try { _logWriter.Flush(); _logWriter.Close(); } catch (Exception) { } _logWriter = null; } if (_newReader != null) { Console.SetIn(_oldConsoleIn); _oldConsoleIn = null; _newReader = null; } if (_newWriter != null) { Console.SetOut(_oldConsoleOut); _oldConsoleOut = null; _newWriter = null; } }
private static void StartLog(TextWriter logWriter, string command, string[] initialArgs) { ConsoleHandler._logWriter = logWriter; _newWriter.AddTextWriter("LOG", logWriter, true); _oldConsoleIn = Console.In; _newReader = new LoggingTextReader(Console.In, logWriter); Console.SetIn(_newReader); if (!string.IsNullOrEmpty(command)) { logWriter.Write(command); if ((initialArgs != null) && (initialArgs.Length > 0)) { foreach (string str in initialArgs) { logWriter.Write(" " + str); } } logWriter.WriteLine(""); } }