Windows MobileQAVisual C++ 7.1Visual C++ 8.0Visual C++ 7.0Windows 2003Windows 2000Visual C++ 6.0Windows XP中级DevVisual StudioWindowsC++.NET
适用于您的 Windows 应用程序的小型简易 TRACE/Log 支持






4.56/5 (9投票s)
2006年2月22日
2分钟阅读

73809

516
此头文件将为您提供最简单的方法,从您的 MFC 应用程序中记录一些跟踪消息。
引言
有时,在开发下一个 Windows 应用程序时,您可能希望在应用程序的 _DEBUG
版本中添加一些简单的记录器或跟踪支持。标准的 Microsoft TRACE 工具非常不方便和奇怪。您想要的只是将代码中的一些有用信息打印到文本文件,或者可能打印到 VS IDE 输出窗口。这正是 MyTrace
所做的事情。将一个头文件包含到您的项目中,您就可以开始了。
用法
首先,您需要将 mytrace.h 头文件包含到您的项目中。然后在您开始记录任何消息之前,您需要像这样初始化 MyTrace
MYTRACE_INIT("MyApp_log.txt"); //Init MT with single log file
或者,如果您希望所有真正“糟糕的错误”都报告到一个单独的文件中,则像这样
MYTRACE_INIT_EX("MyApp_log.txt", "MyApp_errors.txt"); // main log and error log files
相应的文本文件将在您的应用程序工作文件夹中创建。您可以选择性地设置您想要在日志中看到的最低严重性级别(默认级别为 MT::LEVEL_INFO
)
MYTRACE_LEVEL(MT::LEVEL_DEBUG);
// set minimal trace messages severity to report
您可以像这样添加跟踪消息
MYTRACE(MT::LEVEL_INFO, "\t\t\t MyApp v.%d.%d.%d started \n\n", 1, 0, 0); MYTRACE(MT::LEVEL_ERROR, "Wrong parameter: %s", wrongStringParameter);
并且在您的应用程序即将关闭之前,不要忘记通过一个简单的调用来反初始化 MyTrace
,像这样
MYTRACE_DEINIT;
// stop MT
注释
您可以从以下跟踪消息的严重性级别中选择一个:LEVEL_ERROR
、LEVEL_WARNING
、LEVEL_INFO
或 LEVEL_DEBUG
。
如果您使用 MYTRACE_INIT_EX
初始化 MyTrace
,那么所有具有 LEVEL_ERROR
和 LEVEL_WARNING
级别的消息也将报告到单独的错误日志文本文件中,以便于调试。
您可以通过注释/取消注释文件顶部的 #define
来更改 MyTrace
的一些设置。
#define MT_USE_ATLTRACE
开启/关闭将消息转发到标准的 MicrosoftATLTRACE
宏。它使您能够在 VS IDE 的“输出”窗口中看到跟踪消息。默认情况下,这是启用的。#define MT_KEEP_ATLTRACE_LEVELS
指示MyTrace
严重性级别是否也应被视为ATLTRACE
级别。默认情况下,所有转发到ATLTRACE
的消息的级别都为0
。#define MT_REDIRECT_STDOUT
将全局stdout
重定向到MyTrace
日志文件。如果您想捕获来自printf
类函数的所有输出,您可能希望这样做,但这可能会干扰您的应用程序行为;因此默认情况下,此选项已禁用。
这是一个日志记录的示例
...
INFO d:\projects\MyApp\MyAppMain.cpp(105) 02/20/06 09:00:41:
Starting Application...
DEBUG d:\projects\MyApp\MyAppMain.cpp(322) 02/20/06 09:00:42:
Hello World
WARNING d:\projects\MyApp\MyAppMain.cpp(408) 02/20/06 09:00:43:
Runtime Excepton 1234
INFO d:\projects\MyApp\MyAppMain.cpp(512) 02/20/06 09:00:44:
Closing Application...
...