在C#中处理详细控制台输出的正确方法

时间:2011-10-07 15:31:16

标签: c# logging console cmd

通常在我开发程序时,我会抛出一些console.writeline语句,让我知道应用程序在调试过程中正在做什么。通常我会发现自己删除它们并将它们重新添加以保持代码清洁。我还没有找到一种看似有效的方法将这些优雅地放在代码中。

我想知道其他人做了什么或被认为是最佳做法。我不确定我是否可以使用跟踪,因为我没有在安装了Visual Studio的计算机上进行调试(我发布的服务器没有它)。

有没有基于AOP的方法来攻击它?理想情况下,我不希望生产代码中的输出,因为写入控制台似乎会降低应用程序的速度。

提前致谢!

4 个答案:

答案 0 :(得分:8)

您是否看过使用Log4Net?对你来说应该更加灵活。您可以在代码中留下大量日志记录,并根据执行时加载的配置打开或关闭它。

答案 1 :(得分:3)

有很多选项可以登出。 MS企业库和log4net是两个非常受欢迎的选项。在这些中,您可以通过配置文件控制日志记录的级别,以便在开发中可以进行非常详细的日志记录,但是在prod中,您可以抑制除例外的所有错误 - 所有这些都不会更改代码。

此外,如果您需要调试生产问题,只需更改配置设置即可在生产中启用详细登录。

答案 2 :(得分:2)

Microsoft的企业库Logging Application Block可能是一种选择。

答案 3 :(得分:0)

您是否仅在调试模式下尝试写入?我相信这样做的正确方法是这样的:

#if DEBUG
  Console.WriteLine("Debug stuff here");
#endif