2012-07-24 46 views
1

使用c#,是否有将控制台输出复制到第二个位置(以及原始控制台)的方法。我知道我可以调用SetOut来覆盖控制台的默认输出位置,但我想要做的是继续写入原始控制台实现,但也写入第二个位置。有任何想法吗?c#将控制台输出复制到第二个位置

+0

我建议你看看[log4net的(http://logging.apache.org/log4net/)试试。 – Polynomial 2012-07-24 09:28:42

+2

看看这个答案在这里:http://stackoverflow.com/a/420502/82447 – klennepette 2012-07-24 09:29:53

回答

0

你可以用这个代码

FileStream ostrm; 
StreamWriter writer; 
TextWriter oldOut = Console.Out; 

try 
{ 
    ostrm = new FileStream ("./Redirect.txt", FileMode.OpenOrCreate, FileAccess.Write); 
    writer = new StreamWriter (ostrm); 
} 
catch (Exception e) 
{ 
    Console.WriteLine ("Cannot open Redirect.txt for writing"); 
    Console.WriteLine (e.Message); 
    return; 
} 
Console.SetOut (writer); 
Console.WriteLine ("This is a line of text"); 
Console.SetOut (oldOut); 
writer.Close(); 
ostrm.Close(); 
Console.WriteLine ("Done");