2009-12-04 22 views
20

我想在请求处理过程中打印一些痕迹。如何在ASP.NET环境中使用控制台输出?

但是,当我在这个环境中制作Console.WriteLine(“东西”)时,什么都不显示。

缺少什么,为了使用控制台打印这些痕迹,我需要做些什么?

+2

是什么让你觉得那里是一个控制台? –

回答

26

使用Debug.Write()并且通过IDE中的调试器输出窗口观察结果。

或者,使用功能非常强大的ASP.NET trace功能。启用跟踪后,您可以导航到Web应用程序根目录中的trace.axd页面。此页面将显示您的应用的跟踪消息。

+0

我可以为我的应用创建一些专用输出吗?我发现Debug.Write是在这里做跟踪的最佳选择,但其他跟踪正在由asp.net完成,我只想看看我的痕迹。 –

+0

是的。导航到Web应用程序根目录中的trace.axd页面。如果您的应用已启用跟踪功能,该页面将仅显示您的应用的跟踪消息。 – CesarGon

+0

我不能得到debug.print或debug.write去VB Web应用程序的输出窗口。 –

0

你在哪里寻找输出?

Console.WriteLine()写入命令行 - 不写入网页。使用Response.Write()写入网页或在Visual Studio调试器中启动应用程序以查看命令行输出。

+0

我在看命令行/输出,他们都没有显示任何东西。 –

4

您可以使用Response.Write将输出写入您的页面进行调试,或在javascript中使用警报,甚至写入日志文件。有很多方法可以获得调试输出。还有一个可用于.Net的log4net(类似于log4j)

3

鉴于这是一个ASP.NET应用程序,我会做:

Page.Trace.Write ("Something here"); 

然后启用跟踪无论是对page or the application,然后就进入〜/的trace.axd看到的结果(他们可以也可以在页面输出结尾,具体取决于您选择的配置选项)。

9

除了已经提到的,你可以简单地写入日志文件的方法:

File.AppendAllText(@"c:\log.txt", @"Debug Message Here!" + Environment.NewLine); 

当然,你可以使用向使用Server.Mappath写在你的web目录中的文件。

7

我知道这是晚了,但你可以从你的C#脚本中使用下面的类

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); 
    } 
} 

这样,你可以实时看到你的日志信息,您通过点击该网站写信给你的Javascript控制台,就像你在js中一样。

+1

所以这就是我真正想要的答案,但这真的是最简单的方法吗?听起来有些复杂,不得不打印出一个脚本标签并调用console.log来打印JS控制台。简单地写入日志就是'public static void ConsoleLog(string message){Response.Write(“”)}'。但似乎仍然应该建在...... – Uxonith

相关问题