2015-10-19 73 views
1

我很好奇什么是在Windows上记录调试打印信息的最常用和/或可接受的方式。我没有使用visual studio,并且正在编译GCC。C++调试Windows上的日志记录

我习惯于在Android上开发,并使用logcat编写和监视日志。 是否有这样的win32的东西?

编辑:

这是最常见的使用这样的事情吗?

https://msdn.microsoft.com/en-us/library/6xkxyz08.aspx

+0

问题要求推荐一些东西不幸是不合时宜的... – Petr

+0

['std :: clog'](http://en.cppreference.com/w/cpp/io/clog)?例如,您可以使用[此技术](https://stackoverflow.com/a/10151286/865719)将其输出重定向到一个文件。 – 865719

+0

你想写简单的文本消息到文件? [Windows不这样做](https://msdn.microsoft.com/en-us/library/windows/desktop/aa385780.aspx)。尽管如此,可能有一百万个记录器实用程序。我知道没有统治性的,白色支持的日志软件包。 – user4581301

回答

1

虽然它不提供过滤的附加功能和日常/尺寸侧翻OutputDebugString是一个很好的API,允许您发送调试日志消息。

输出可以检索并显示一个特殊的程序,当程序没有启动时,输出会被忽略。

了解更多关于它在这篇文章中:How to view output of OutputDebugString?(相同的API调用可以从C中使用的++)

根据输出的大小,你可能想使用的Windows事件日志或类似 http://log4cpp.sourceforge.net/日志框架

+0

我该如何使用它?我需要什么库来使用它? – ScottF

+0

OutputDebugString是对Windows的内置API调用,因此不需要额外的库 – Marged

+0

它不适用于我。我必须包含“windows.h” – ScottF

0

登录Windows的标准基础结构是Event Tracing。它是在OS的所有部分可用的(和使用),都是由用户模式应用程序和内核模式的模块:

目的
Windows事件跟踪(ETW)提供应用程序的程序员开始的能力和停止事件跟踪会话,检测应用程序以提供跟踪事件,并消耗跟踪事件。跟踪事件包含事件头和提供者定义的数据,用于描述应用程序或操作的当前状态。您可以使用这些事件来调试应用程序并执行容量和性能分析。

在适用
使用ETW当你想仪应用程序,用户登录或内核事件记录到日志文件,消耗从日志文件或实时的事件。

开发商观众
ETW是专为谁写的用户模式应用程序C和C++开发人员。

运行时间要求
ETW包含在Microsoft Windows 2000及更高版本。