リクエストの処理中にいくつかのトレースを印刷したいと思います。
しかし、この環境でConsole.WriteLine( "something")を作成すると、何も表示されません。
不足しているもの、コンソールを使用してこれらのトレースを印刷するには何が必要ですか?
Debug.Write()
を使用して、IDEのデバッガーの出力ウィンドウから結果が表示されることを確認します。
または、非常に強力な ASP.NETトレース 機能を使用します。トレースを有効にすると、Webアプリのルートディレクトリにあるtrace.axdページに移動できます。このページには、アプリのトレースメッセージが表示されます。
すでに述べた方法に加えて、単にログファイルに書き込むことができます。
File.AppendAllText(@"c:\log.txt", @"Debug Message Here!" + Environment.NewLine);
もちろん、Server.MapPathを使用して、Webディレクトリにファイルを書き込むこともできます。
私はこれが遅いことを知っていますが、次のクラスを使用してC#スクリプトからJavaScriptコンソールに書き込むことができます
public static class Javascript
{
static string scriptTag = "<script type=\"\" language=\"\">{0}</script>";
public static void ConsoleLog(string message)
{
string function = "console.log('{0}');";
string log = string.Format(GenerateCodeFromFunction(function), message);
HttpContext.Current.Response.Write(log);
}
public static void Alert(string message)
{
string function = "alert('{0}');";
string log = string.Format(GenerateCodeFromFunction(function), message);
HttpContext.Current.Response.Write(log);
}
static string GenerateCodeFromFunction(string function)
{
return string.Format(scriptTag, function);
}
}
そうすることで、jsと同じように、サイトをクリックするとリアルタイムでログメッセージを確認できます。
Response.Writeを使用して、デバッグのためにページに出力を書き込んだり、JavaScriptでアラートを使用したり、ログファイルに書き込んだりすることもできます。デバッグ出力を取得するには多くの方法があります。使用できる.Net用のlog4netもあります(log4jと同様)。
ASP.NETアプリケーションであることを考えると、次のようにします。
Page.Trace.Write ("Something here");
次に ページまたはアプリケーション のトレースを有効にして、〜/ Trace.axdに移動して結果を確認します(選択した構成オプションによっては、ページ出力の最後に表示される場合もあります)。
出力をどこで探していますか?
Console.WriteLine()は、Webページではなくコマンドラインに書き込みます。 Response.Write()を使用してWebページに書き込むか、Visual Studioデバッガーでアプリケーションを起動してコマンドライン出力を確認します。