2014-09-30 147 views
0

因为我没有任何可以测试应用程序功能的IIS的Windows服务器,所以我想问下面的代码是否会按照我的意图工作 - Web应用程序会写入一些内容控制台,我需要将控制台中写入的内容保存到特定文件。我在我的笔记本电脑上使用Visual Studio 2013安装的ISS Express进行本地测试。将控制台输出从IIS保存到文件

IIS Express与Windows Server上的IIS相同,因此我可以使用下面的这段代码?

using (var consoleWriter = new StreamWriter(
      new FileStream(_tempOutputFileName, 
          FileMode.Create, FileAccess.Write))) 
{ 
    Console.SetOut(consoleWriter); 
    //do some work here with output to console 
} 


var standardOutput = 
     new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = true }; 
Console.SetOut(standardOutput); 

编辑:我无法直接写入文件,因为我需要通过我正在使用的第三方库捕获写入控制台的内容。

+0

为什么不直接写入文件? – ZippyV 2014-09-30 12:49:14

+0

我无法使用,因为我正在使用外部库并将库写入控制台,而且我需要获取库向控制台写入的内容。 – 2014-09-30 12:53:13

回答

1

考虑使用日志框架,如log4net和重定向控制台输出,例如。像this

在log4net的你有很多的追加程序,数据库等

写在IIS环境的文件可以有安全问题。

+0

似乎我不能使用log4net,因为我不是一个写控制台,但第三方应用程序,我无法找到如何从库的方法记录控制台输出的方式。 – 2014-09-30 16:04:25

相关问题