C++调试Windows上的日志记录
问题描述:
我很好奇什么是在Windows上记录调试打印信息的最常用和/或可接受的方式。我没有使用visual studio,并且正在编译GCC。C++调试Windows上的日志记录
我习惯于在Android上开发,并使用logcat编写和监视日志。 是否有这样的win32的东西?
编辑:
这是最常见的使用这样的事情吗?
答
虽然它不提供过滤的附加功能和日常/尺寸侧翻OutputDebugString
是一个很好的API,允许您发送调试日志消息。
输出可以检索并显示一个特殊的程序,当程序没有启动时,输出会被忽略。
了解更多关于它在这篇文章中:How to view output of OutputDebugString?(相同的API调用可以从C中使用的++)
根据输出的大小,你可能想使用的Windows事件日志或类似 http://log4cpp.sourceforge.net/日志框架
答
登录Windows的标准基础结构是Event Tracing。它是在OS的所有部分可用的(和使用),都是由用户模式应用程序和内核模式的模块:
目的
Windows事件跟踪(ETW)提供应用程序的程序员开始的能力和停止事件跟踪会话,检测应用程序以提供跟踪事件,并消耗跟踪事件。跟踪事件包含事件头和提供者定义的数据,用于描述应用程序或操作的当前状态。您可以使用这些事件来调试应用程序并执行容量和性能分析。在适用
使用ETW当你想仪应用程序,用户登录或内核事件记录到日志文件,消耗从日志文件或实时的事件。开发商观众
ETW是专为谁写的用户模式应用程序C和C++开发人员。运行时间要求
ETW包含在Microsoft Windows 2000及更高版本。
问题要求推荐一些东西不幸是不合时宜的... – Petr
['std :: clog'](http://en.cppreference.com/w/cpp/io/clog)?例如,您可以使用[此技术](https://*.com/a/10151286/865719)将其输出重定向到一个文件。 – 865719
你想写简单的文本消息到文件? [Windows不这样做](https://msdn.microsoft.com/en-us/library/windows/desktop/aa385780.aspx)。尽管如此,可能有一百万个记录器实用程序。我知道没有统治性的,白色支持的日志软件包。 – user4581301