今天写一个webservice的时候,发现想要像控制台一样输出程序,但是发现不行。输出的东西不会被捕获,所以就像自己写一个调试日志一样的东西。
开始的想法是将system.console改一下,让使用console.write也可以输出。于是查到了setout方法可以把console的out改了就好了。
实施以后发现了下一个问题。文件被建立了出来但是却没有东西写进去。
请教了一下,发现stream需要flush。果然flush一下就可以,然后再streamwriter找到一个autoflush的方法,就可以了。呵呵,代码如下:
System.IO.StreamWriter sw = new StreamWriter(@"c:/zzlog.ini");
sw.AutoFlush = true;
System.Console.SetOut(sw);
Console.Write("start!");
这样就可以使用console.write来写东西到日志里了。
如果想要恢复,我在msdn里查到了这样的代码:
StreamWriter standardOutput = new StreamWriter(Console.OpenStandardOutput());
standardOutput.AutoFlush = true;
Console.SetOut(standardOutput);
就可以恢复回去了。
后来和l牛人请教了,他说可以写一个静态方法来记录日志,要写什么日志就调用这个方法。还可以加一个开关,就是设置一个bool值,true时就写,false就不写,调试完了改一下就可以直接发布了,呵呵。
不错不错。
发现自己的C#功底还是太浅了。努力努力!