将控制台输出从IIS保存到文件

时间:2014-09-30 12:43:48

标签: c# asp.net iis console

因为我没有任何带有IIS的Windows服务器,我可以在其上测试应用程序的功能,我想问下面的代码是否会按照我的预期方式运行 - 网络应用程序向控制台写入内容,我需要将控制台中写入的内容保存到特定文件中。我正在使用Visual Studio 2013安装的ISS Express在我的笔记本电脑上进行本地测试。

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);

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

1 个答案:

答案 0 :(得分:1)

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

在log4net中,你有很多appender,数据库等。

写入IIS环境中的文件可能存在安全问题。