我知道如何编写可以在 webforms 环境中查看的跟踪语句,但是如何在 windows forms 应用程序中执行此操作?
我在一个静态方法中,我想显示它正在生成的 sql 查询。
我无权访问 messagebox.show,我有什么选择?
最简单的方法是使用System.Diagnostics.Debug.WriteLine
或System.Diagnostics.Trace.WriteLine
。如果您附加了调试器,则消息将显示在输出窗口中,否则运行DebugView以查看消息(您需要进行一些过滤以排除噪音)。
您可以使用Log4Net。
Log4Net 完全是 Xml 配置驱动的,并提供了非常高的可扩展性(只需实现新的 Appenders、Filters 或 Layouts)。
您需要在表格中显示它吗?如果没有,您可以只 Trace.WriteLine() 查询并使用DebugView来查看它。如果这没有帮助,我想我需要更多信息。
System.Diagnostics.Trace 类将写入跟踪侦听器。
默认侦听器在调试时写入输出窗口。您可以在应用程序配置文件中指定其他侦听器,这些侦听器可以将跟踪输出重定向到文件、事件日志等。
或者使用 Log4Net 等日志框架。
您可以使用全局日志记录对象:
enum LogLevel
{
Info,
Warning,
Error
}
delegate void OnLog (string msg, LogLevel level);
interface ILogger
{
void Log(string msg, LogLevel level);
event OnLog;
}
然后使用您使用 Program 类中的公共静态方法获取的类扩展 ILogger。
在您的主窗体中,将您自己附加到 OnLog 事件并使用它来为自己打印消息。然后,您所要做的就是使用 SQL 查询在静态方法中调用 Log 方法。
:)