在Visual Studio IDE的输出窗口中写入跟踪信息

 

   程序调试的方式有很多,尽管在很多时候我们首推设置断点、单步跟踪、跟踪变量,在Visual Studio系列工具中尤其如次,但是相信大多数人也都会通过调用printf、coutConsole.WriteLine()……输出一些信息来跟踪自己程序的执行,解决问题。

       在用ASP.NET开发网站时,我非常希望能随时观察程序的执行流程、某些变量的值等等,虽然通过设置断点也能做到,但是总感觉很耗时麻烦。通过下面的代码我们可以很方便将这些信息输出到Visual Studio IDE的输出窗口中,跟踪程序的执行情况,也可以将这些信息单独输出到一个窗格中,从而于系统产生的编译、警告信息相分离。

       添加下面两个引用

EnvDET
EnvDET80

using  EnvDTE;
using  EnvDTE80;

class  TraceMessage
{
    
//类的唯一实例
    private static TraceMessage _instance = null;

    
//Visual Studio的一个应用实例
    private EnvDTE80.DTE2 _dte2 = null;

    
private TraceMessage()
    
{}

    
//获取类的唯一实例
    public static TraceMessage  GetInstance()
    
{
        
if(_instance == null)
        
{
            _instance 
= new TraceMessage();
        }

        
return _instance;
    }


    
//设置表示Visual Studio IDE的应用实例
    public void SetVisualStudioInstance()
    
{
        
//获取当前正在运行的Visual Studio IDE的一个应用实例
        _dte2 = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.8.0");
    }

    
    
//向输出窗口输入新的信息
    public void WriteMessageToOutputWindow(string msg)
    
{
        OutputWindow ow 
= _dte2.ToolWindows.OutputWindow;

        
//获取输出窗口中的"生成"窗格
        OutputWindowPane owP = ow.OutputWindowPanes.Item("生成");
        owP.Activate();

        
//这里也可以创建新的窗格
        
//最好将添加窗格的语句单独拿出去,否则每次写信息都会单独创建一个窗格
        
//OutputWindowPane owP = ow.OutputWindowPanes.Add("My Tracing Message");
        
//owP.Activate();

        
//输入信息
        owP.OutputString(msg);
    }

}

   上面的代码还存在一个缺陷,如果你同时打开多个Visual Studio进行工作,这些跟踪信息最终都会写入其中某个IDE的输出窗口中,而不是写入它们各自的。另外在Visual Studio工具中通过“网站—〉ASP.NET配置”我们也可以启动ASP.NET自带的跟踪系统,将信息记录到一个指定的文件中。 下面总结内容来自http://dev.csdn.net/develop/article/84/84761.shtm,可以用一下试试看

1.页级别跟踪: 在页的开头包括如下的页指令<%@ Page Trace="True" TraceMode="SortByCategory/SortByTime" %>
  自定义消息: 
    Trace.Write("这里为要显示的字符串"); 
    Trace.Warn("这里为要显示的字符串");   //与Trace.Write相同,只是字体为红色
    检查是否使用了跟踪
    例句: if(Trace.IsEnabled) { Trace.Warn("已启用跟踪")}   
2.应用程序级别跟踪: 在Web.config文件的<System.Web>节中 <trace enabled="true" pageOutput="true"/>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
代码段是可重用的、面向任务的代码块。 注意:为了让 Visual Studio 能够识别这些代码段的位置,您需要将安装目录添加到 Visual Studio 的代码段管理器(请参阅如何:管理代码段)。 也可以通过单击下面的类别下载 Visual C# 代码段。 应用程序代码段 了解如何使用独立存储、ClickOnce 任务、控制台应用程序和进程管理。 集合和数组代码段 了解任务(如创建、迭代、查找元素)和排序集合(如数组和字典)。 连接代码段 了解如何检查网络状态,通过 HTTP 下载文件,执行串行端口操作,发送电子邮件等。 Crystal Reports 代码段 了解常见报告任务,如打印 Crystal 报表、设置报表参数和配置报表数据访问权限。 数据库代码段 了解如何执行有关 ADO.NET 数据访问的各种常见任务。 数据类型代码段 了解各种字符串转换、日期段操作和其他以侧重于类型的操作。 文件系统代码段 了解如何执行有关读取、写入和管理文件的多个任务。 数学代码段 了解如何计算月付、折旧、正弦、余弦和随机数。 操作系统代码段 代码段大集合,包括进行事件日志记录、消息队列、进程管理、注册表访问、Windows 服务、获取系统信息等代码段。 安全性代码段 了解如何使用哈希、解密、加密和获取用户的名称。 智能设备代码段 了解如何在智能设备上执行常见任务。 Windows 窗体代码段 了解如何使用剪贴板、字体、声音、GDI 绘图以及常规 Windows 窗体和创建控件。 XML 代码段 了解读写 XML、选择节点、执行 XSL 转换以及其他面向 XML 的任务。 重构代码段 这些代码段用于还原当前在 Visual Studio IDE 执行 C# 重构操作所使用的默认代码段集合。这些代码段默认情况下随 Visual Studio 一起安装,且应仅用于在 C# 重构代码段被损坏或删除时进行还原。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值