1

我知道如何编写可以在 webforms 环境中查看的跟踪语句,但是如何在 windows forms 应用程序中执行此操作?

我在一个静态方法中,我想显示它正在生成的 sql 查询。

我无权访问 messagebox.show,我有什么选择?

4

5 回答 5

5

最简单的方法是使用System.Diagnostics.Debug.WriteLineSystem.Diagnostics.Trace.WriteLine。如果您附加了调试器,则消息将显示在输出窗口中,否则运行DebugView以查看消息(您需要进行一些过滤以排除噪音)。

于 2008-10-17T19:09:46.863 回答
2

您可以使用Log4Net

Log4Net 完全是 Xml 配置驱动的,并提供了非常高的可扩展性(只需实现新的 Appenders、Filters 或 Layouts)。

于 2008-10-17T19:14:57.523 回答
1

您需要在表格中显示它吗?如果没有,您可以只 Trace.WriteLine() 查询并使用DebugView来查看它。如果这没有帮助,我想我需要更多信息。

于 2008-10-17T19:08:44.060 回答
1

System.Diagnostics.Trace 类将写入跟踪侦听器。

默认侦听器在调试时写入输出窗口。您可以在应用程序配置文件中指定其他侦听器,这些侦听器可以将跟踪输出重定向到文件、事件日志等。

或者使用 Log4Net 等日志框架。

于 2008-10-17T19:09:24.073 回答
0

您可以使用全局日志记录对象:

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 方法。

:)

于 2008-10-17T19:07:37.947 回答