gpt4 book ai didi

c# 记录在控制台中写入的所有内容

转载 作者:太空宇宙 更新时间:2023-11-03 20:14:20 25 4
gpt4 key购买 nike

我有一个用 c# 编码的服务器,我想知道。有没有一种方法可以记录在控制台中弹出的所有内容,而不必在它说 Console.WriteLine 的每一行中添加 StreamWriter 或其他内容?

我要用这个:

 *.exe > *.log

但我希望能够在登录时看到控制台......有什么想法吗?

最佳答案

您可以使用 Trace写入控制台和文件:

Trace.WriteLine("Hello");

要设置控制台和文件输出,请在应用程序启动时使用以下内容:

Trace.AutoFlush = true;
Trace.Listeners.Clear();
Trace.Listeners.Add(new ConsoleTraceListener());
Trace.Listeners.Add(new TextWriterTraceListener("log.txt"));

同样可以从配置文件中配置

<system.diagnostics>
<trace autoflush="true">
<listeners>
<clear/>
<add name="console" type="System.Diagnostics.ConsoleTraceListener"/>
<add name="file" type="System.Diagnostics.TextWriterTraceListener"
initializeData="log2.txt"/>
</listeners>
</trace>
</system.diagnostics>

但考虑使用一些日志框架行 NLog (可从 NuGet 获得)。我认为这就是您所需要的——您可以同时写入控制台和文件,以及许多其他目标,您可以通过更改配置文件来添加和删除这些目标:

<targets>
<target xsi:type="Console" name="console" layout="${time} ${message}"/>
<target xsi:type="File" name="file" fileName="${basedir}/logs/log.txt"/>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="file,console" />
</rules>

用法:

Logger logger = LogManager.GetCurrentClassLogger();
// after you obtained logger
logger.Info("Hello");// message goes to all targets

关于c# 记录在控制台中写入的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17891088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com