TraceTool查看器能够显示多种类型的来源(从提供的框架、日志文件、事件日志、或者OutputDebugString方法)。一个简单而强大的client框架发送简单的跟踪,分组跟踪。类和对象浏览器,转储,调用堆栈。

主页:http://www.codeproject.com/KB/trace/tracetool.aspx

下载C++ demo, library, and documentation 和TraceTool viewer and documentation

以下进行測试,Visual Studio 2008 SP1环境:

1.新建基于对话框的測试project名称TestTrace。使用Unicode库,共享DLL方式。其余默认;

2.将"...\TraceTool 12.4\Cpp\Source"下的tracetool.h和tracetool.cpp拷贝到project文件夹下,加入到项目project里面;

3.由于project是启动预编译头的,所以双击"解决方式资源管理器"的"tracetool.cpp",把以下的当中一行:

1
//#include "stdafx.h"   // remove precompiled header 

取消凝视,改为:

1
#include "stdafx.h"   // remove precompiled header 

4.试着编译下project。能编译通过;

5.以下在对话框TestTraceDlg.cpp文件。加入头文件:

1
#include "tracetool.h" 

6.加入几个測试button。button代码例如以下:

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80
/** 简单使用实例,多节点也能够使用缩进方式 */ 

void CTestTraceDlg::OnBnClickedButton1() 

{ 

    //----------------------------------单节点加入-----------------------------------     

    TTrace::Debug()->Send("你好!");                        //Debug模式 

    TTrace::Debug()->Send("这是Debug跟踪。"); 

    TTrace::Debug()->Send("你好!", "这是带有凝视的"); 

 

    TTrace::Warning()->Send("This is Warning.");            //Warning模式 

 

    TTrace::Error()->Send(_T("This is Error."));            //Error模式 

    TTrace::Error()->Send("---"); 

 

    //----------------------------------多节点加入-----------------------------------   

    TraceNodeEx *nodeEx = TTrace::Debug()->CreateChildEx("多节点"); 

    nodeEx->Send(); 

    nodeEx->traceNode->Send("子节点"); 

    delete nodeEx; 

 

    //----------------------------------更改字体等-----------------------------------     

    TraceNodeEx *nodeEx2 = TTrace::Debug()->CreateChildEx("丰富节点"); 

    nodeEx2->AddFontDetail(-,                                //列索引,-1表示全部 

                          true,                                //是否粗体 

                          false,                            //是否斜体 

                          ,                                //颜色,-1表示默认颜色 

                          ,                                //字体大小,0表示普通大小 

                          "宋体");                            //字体名称 

    nodeEx2->AddBackgroundColor(RGB(,,),            //背景颜色 

                                );                            //列索引 

    nodeEx2->Members()->Add("成员"); 

    nodeEx2->Members()->Add("成员列一", "成员列二", "成员列三") 

                        ->SetFontDetail(,                    //列索引,-1表示全部 

                                        false,                //是否粗体 

                                        true,                //是否斜体 

                                        ,            //颜色。-1表示默认颜色 

                                        ,                    //字体大小。0表示普通大小 

                                        "黑体");            //字体名称 

    nodeEx2->Members()->Add("列1") 

                        ->Add("列1-1") 

                            ->Add("列1-1-1", "列1-1-2"); 

    nodeEx2->Send();                                        //发送节点到查看器。返回TraceNode *指针 

    nodeEx2->traceNode->ResendIconIndex(CST_ICO_COLLECT_ITEM);//改变此节点图标 

    delete nodeEx2; 

 

    //----------------------------------对象转储-----------------------------------     

    ] = "1234567890qwertyuiop"; 

    TTrace::Debug()->SendDump(); 

 

    //----------------------------------XML字符串-----------------------------------    

    TTrace::Debug()->SendXml("XML測试", "<Data>这是XML信息</Data>"); 

} 

/** 保存查看器内容 */ 

void CTestTraceDlg::OnBnClickedButton2() 

{ 

    //----------------------------------保存到文本,不包含右边的信息-----------------------------------     

    TTrace::WindowTrace()->SaveToTextfile("日志文件.txt");    //保存到当前文件夹下,亦可完整路径 

 

    //----------------------------------保存到XML。包含右边的信息-----------------------------------     

    TTrace::WindowTrace()->SaveToXml("日志文件.xml");        //保存到当前文件夹下。亦可完整路径 

} 

/** 设置自己主动保存查看器日志文件 */ 

void CTestTraceDlg::OnBnClickedButton3() 

{ 

    //----------------------------------设置查看器日志-----------------------------------     

    TTrace::WindowTrace()->SetLogFile("C:\\查看器日志.XML",//查看器日志文件名称 

                                      ,                    //0 禁用;1 启用;2 每日新文件(文件名称+CCYYMMDD) 

                                      -);                    //行数限制,以開始一个新文件,-1 不限制 

} 

/** 不发送到查看器。可单独保存跟踪消息到XML */ 

void CTestTraceDlg::OnBnClickedButton4() 

{ 

    TTrace::Options()->sendMode = None;                        //设置不发送到TraceTool 

    TTrace::Options()->SendDate = true;                        //开启示送日期 

    TTrace::Options()->SendThreadId = false;                //关闭发送线程ID 

    TTrace::WindowTrace()->SetLogFile("本地日志.XML",        //本地日志文件名称 

                                      ,                    //3 禁用;4 启用;5 每日新文件(文件名称+CCYYMMDD) 

                                      );                //行数限制,以開始一个新文件,-1 不限制 

    TTrace::Debug()->Send("这是多字节");                    //多字节 

    TTrace::Debug()->Send(L"这是宽字节");                    //宽字节,改动了源代码以显示中文 

} 

7.在第四个button代码中,须要修改一些地方才干以支持中文保存XML,支持中文宽字节显示,详细修改的内容在以下给出的下载文件中。

8.执行Viewer,再编译、执行project,结果例如以下图所看到的:

下载地址:http://download.csdn.net/detail/akof1314/3912968

扩展资料:

1.TraceTool 12.4: The Swiss-Army Knife of Trace  http://www.codeproject.com/KB/trace/tracetool.aspx

2.《C++ TraceTool API documentation》

TraceTool 跟踪工具的瑞士军刀(C++版使用)的更多相关文章

  1. NetCat,在网络工具中有“瑞士军刀”美誉

    nc命令详解   NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本.因为它短小精悍(1.84版本也不过25k,旧版本或缩减版甚至更小).功能实用,被设计为一个简单.可 ...

  2. 推荐windows下的日志跟踪工具:SnakeTail

    用过Linux的同学都知道,在Linux中要实时跟踪日志文件那是非常的方便,Tail.Less都可以做到. 开启动态跟踪后,程序会监视文件修改,从而不断刷新出最新的内容,对于线上运维特别有用.   今 ...

  3. 项目管理和缺陷跟踪工具Redmine

    官网: http://www.redmine.org/ http://demo.redmine.org/ 下载: http://www.redmine.org/projects/redmine/wik ...

  4. PLSQL_性能优化效能跟踪工具SQL Trace分析(案例)

    2014-06-25 Created By BaoXinjian

  5. 老毛桃U盘启动盘制作工具V20140501完美贡献版

    老毛桃U盘启动盘制作工具V20140501完美贡献版 下载地址:http://down.laomaotao.net:90/LaoMaoTao_V2014zhuangji.exe 老毛桃U盘装系统综合教 ...

  6. readmine项目管理和缺陷跟踪工具

    官方网站:http://www.redmine.org/演示地址:http://demo.redmine.org/下载地址:http://www.redmine.org/projects/redmin ...

  7. 分享两个网址,一个是使用mssql自带的跟踪工具和分析工具

    http://www.cnblogs.com/Fooo/archive/2013/02/19/2916789.html 使用mssql自带的跟踪工具和分析工具 http://blog.csdn.net ...

  8. 服务跟踪sleuth和可视化跟踪工具Zipkin

    一.增加配置 在Order工程中添加配置 <dependency> <groupId>org.springframework.cloud</groupId> < ...

  9. 谷歌开源漏洞跟踪工具 Monorail 存在跨站点搜索漏洞

    一名安全研究员表示,在谷歌开源漏洞跟踪工具 Monorail 中找到一个漏洞,可被用于执行跨站点搜索 (XS-Search) 攻击. Monorail 用于检查和 Chromium 相关项目中的问题, ...

随机推荐

  1. centos7下添加开机启动

    在/etc/systemd/system下创建weblogic .Service touch weblogic.Service 添加启动权限 chmod +x weblogic.Service 编辑w ...

  2. PWA介绍

    https://codelabs.developers.google.com/codelabs/your-first-pwapp/#0 PWA是一些技术的集合.用于消除web与其他客户端之间的差距,最 ...

  3. Linux等待队列与唤醒

    1.数据结构 1.1等待队列头 struct __wait_queue_head { spinlock_t lock; struct list_head task_list; }; typedef s ...

  4. Google 超分辨率技术 RAISR

    每天都有数以百万计的图片在网络上被分享.储存,用户借此探索世界,研究感兴趣的话题,或者与朋友家人分享假期照片.问题是,大量的图片要嘛被照相设备的像素所限制,要嘛在手机.平板或网络限制下被人为压缩,降低 ...

  5. tomcat 修改默认端口8080 为 80端口

    首先,找到你的安装目录,如图: 打开server.xml文件,找到8080,如图: 将 8080  改成你想要的端口,如 80 即可.改完后,记得要重启tomcat! 将端口改成 80 后,访问就不需 ...

  6. 自己项目使用了ARC,项目中使用第三方库继续引用ARC

    Objective-C引入ARC(Automatic Reference Counting)后,我们经常会面对这样一种困境:自己的项目使用了ARC,却发现要使用的第三方类库是non-ARC的:又或者自 ...

  7. Python算法-二叉树深度优先遍历

    二叉树 组成: 1.根节点  BinaryTree:root 2.每一个节点,都有左子节点和右子节点(可以为空)  TreeNode:value.left.right 二叉树的遍历: 遍历二叉树:深度 ...

  8. Leetcode 397.整数替换

    整数替换 给定一个正整数 n,你可以做如下操作: 1. 如果 n 是偶数,则用 n / 2替换 n.2. 如果 n 是奇数,则可以用 n + 1或n - 1替换 n.n 变为 1 所需的最小替换次数是 ...

  9. 【Go】错误处理

    · error类型是一个接口类型,也是一个Go语言的内建类型.在这个接口类型的声明中只包含了一个方法Error.这个方法不接受任何参数,但是会返回一个string类型的结果.它的作用是返回错误信息的字 ...

  10. SSD ECC中的LDPC编解码原理

    转自:http://blog.csdn.net/zhuzongpeng/article/details/78899198 目前SSD中ECC纠错代码主要两种BCH和LDPC.不过,随着SSD对ECC纠 ...