1

Web フォーム環境で表示できるトレース ステートメントを記述する方法は知っていますが、Windows フォーム アプリでこれを行うにはどうすればよいですか?

私は静的メソッドの中にいて、それが生成している sql クエリを表示したいと考えています。

messagebox.show にアクセスできません。どのようなオプションがありますか?

4

5 に答える 5

5

最も簡単な方法は、System.Diagnostics.Debug.WriteLineまたはを使用することSystem.Diagnostics.Trace.WriteLineです。デバッガーが接続されている場合、メッセージは出力ウィンドウに表示されます。それ以外の場合は、DebugViewを実行してメッセージを表示します (ノイズを除外するには、いくつかのフィルター処理を行う必要があります)。

于 2008-10-17T19:09:46.863 に答える
2

Log4Netを使用できます。

Log4Netは完全にXml構成駆動型であり、非常に高度な拡張性を提供します(新しいアペンダー、フィルター、またはレイアウトを実装するだけです)。

于 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 クラスの public static メソッドを使用して取得したクラスで ILogger を拡張します。

そして、メイン フォームで、自分自身を OnLog イベントにアタッチし、それを使用して for 自体にメッセージを出力します。あとは、SQL クエリを使用して静的メソッドで Log メソッドを呼び出すだけです。

:)

于 2008-10-17T19:07:37.947 に答える