控制台写行不起作用
Posted
技术标签:
【中文标题】控制台写行不起作用【英文标题】:Console writeline does not work 【发布时间】:2018-07-05 19:33:51 【问题描述】:我正在用 C# 调试 UWP。在某个时刻,控制台停止给我写行内容。
有没有人能想象出问题可能是什么?
【问题讨论】:
输出窗口不是控制台 你的意思是Debug.WriteLine
改用 Debug.WriteLine
Console.WriteLine 或 Debug.Writeline 不适合跟踪或记录。使用适当的日志库
Console.WriteLine()
工作正常,但对于某些项目却不行。 WPF + .Net Framework
有效,WPF + .Net Core 3
无效。
【参考方案1】:
Console.WriteLine
不适用于 IDE 输出窗口。它写入控制台。因此,您可以使用Debug.WriteLine()
,它在System.Diagnostics
中可用
【讨论】:
仅适用于调试版本 另外请记住,您需要 DEBUG 标志才能使用它。见HERE 天哪,我完全忘记了使用哪一个。为什么没有控制台时Console.WriteLine不报错?【参考方案2】:Console.WriteLine
或 Debug.Writeline
不适合跟踪或记录。真正的解决方案是使用日志库。
调试器的输出窗口不是控制台。如果你想给它写信,请使用Debug.WriteLine
。您可以这样做,因为输出窗口已注册为 .NET 跟踪基础结构的侦听器。
但这在发布模式下不起作用。您需要为此使用Trace.WriteLine
,但您还需要注册自己的侦听器。您还需要指定消息级别以将错误与详细消息分开,例如仅将错误写入日志文件。
尽管如此,添加和配置日志库(如 Serilog 或 NLog)同样容易,它们具有滚动文件、数据库、日志服务器等的提供程序。
【讨论】:
【参考方案3】:如果你想在“输出”中看到一些消息,你应该使用Debug.WriteLine
。为此,您将使用using System.Diagnostics
。
例如,如果您使用 WindowsForm,则不能只使用Console.WriteLine
。
【讨论】:
以上是关于控制台写行不起作用的主要内容,如果未能解决你的问题,请参考以下文章