c# - 将控制台输出镜像到文件

标签 c# .net file text console

在 C# 控制台应用程序中,是否有一种巧妙的方法可以将控制台输出镜像到文本文件?

目前我只是在日志方法中将相同的字符串传递给 Console.WriteLineInstanceOfStreamWriter.WriteLine

最佳答案

这可能需要更多工作,但我会反过来。

为控制台实例化一个TraceListener,为日志文件实例化一个;此后在您的代码中使用 Trace.Write 语句而不是 Console.Write。之后删除日志、控制台输出或附加其他日志记录机制变得更加容易。

static void Main(string[] args)
{
    Trace.Listeners.Clear();

    TextWriterTraceListener twtl = new TextWriterTraceListener(Path.Combine(Path.GetTempPath(), AppDomain.CurrentDomain.FriendlyName));
    twtl.Name = "TextLogger";
    twtl.TraceOutputOptions = TraceOptions.ThreadId | TraceOptions.DateTime;

    ConsoleTraceListener ctl = new ConsoleTraceListener(false);
    ctl.TraceOutputOptions = TraceOptions.DateTime;

    Trace.Listeners.Add(twtl);
    Trace.Listeners.Add(ctl);
    Trace.AutoFlush = true;

    Trace.WriteLine("The first line to be in the logfile and on the console.");
}

据我所知,您可以在应用程序配置中定义监听器,从而可以在不触及构建的情况下激活或停用日志记录。

关于c# - 将控制台输出镜像到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/420429/

相关文章:

c# - 将 RoundhouseE 与 dll 文件一起使用

c# - 没有从 'ApplicationDbContext' 到 'System.Data.Linq.DataContext' 的隐式引用转换

c# - SqlBulkCopy 无法将值 NULL 插入到列中

vba - 外部文件属性未更新 - VBA

c# - 如果我们想利用依赖注入(inject),我们还应该创建实例吗?

c# - 将传统异步处理程序包装到 TPL Task<T> 时,回调和状态会发生什么?

.net - Facebook Canvas POST ASP.net

c# - 从流阅读器中删除最后 x 行

file - 从损坏的媒体中读取数据

c# - 浏览 Entity Framework 迁移选项