如何将所有控制台输出放在一个文件中,同时在控制台C#上显示它?

如何将所有控制台输出放在一个文件中,同时在控制台C#上显示它?,c#,console,output,C#,Console,Output,我如何在C#中做到这一点?我了解Console.SetOut(),但这不是我想要的,因为我在控制台上什么都没有,所有东西都会被归档。如何使写入文本文件和显示在控制台上?有没有什么聪明的方法,或者我需要去检查文件是否存在,打开文件,写入,关闭每个控制台后的文件。WriteLine()函数可以使用一个简单的logger类: class Logger { string LogFilePath { get; set; } void WriteLine(string msg) {

我如何在C#中做到这一点?我了解Console.SetOut(),但这不是我想要的,因为我在控制台上什么都没有,所有东西都会被归档。如何使写入文本文件和显示在控制台上?有没有什么聪明的方法,或者我需要去检查文件是否存在,打开文件,写入,关闭每个控制台后的文件。WriteLine()函数可以使用一个简单的logger类:

class Logger {
    string LogFilePath { get; set; }

    void WriteLine(string msg) {
        Console.WriteLine(msg);
        System.IO.File.AppendAllText(LogFilePath, msg + '\n');
    }
}
用法:

var logger = new Logger { LogFilePath = "text file path" };
logger.WriteLine("Write this to the console and append to the logfile");

只需编写自己的函数来接收字符串,然后将其输出到控制台和日志?在编写答案之前实现了这一点,但确实这是解决问题的好方法。尽管有另一种智能方式已经在.Net框架中实现,但我并不知道。谢谢你的回复,我希望其他人也会觉得有用