windows上的c++调试日志

c++ debug logging on windows

本文关键字:日志 调试 c++ 上的 windows      更新时间:2023-10-16

我很好奇,对于Windows上的c++ win32应用程序,记录调试打印信息的最常见和/或接受的方式是什么。我没有使用visual studio,而是用GCC编译。

我习惯在Android上开发,使用logcat编写和监控日志。win32有类似的东西吗?

编辑:

像这样使用是最常见的吗?

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

虽然它不提供过滤和每日/大小滚动的附加功能,但OutputDebugString是一个很好的API,允许您发送调试日志消息。

输出可以通过一个特殊的程序来检索和显示,当程序没有启动时,输出将被忽略。

阅读更多关于它的文章:如何查看OutputDebugString的输出?(同样的API调用可以在c++中使用)

根据输出的大小,您可能需要使用Windows的Eventlog或日志框架,如http://log4cpp.sourceforge.net/

Windows日志的标准基础结构是事件跟踪。它在操作系统的所有部分都可用(和使用),无论是用户模式应用程序还是内核模式模块:


面向Windows的事件跟踪(ETW)为应用程序编程人员提供了启动和停止事件跟踪会话、检测应用程序以提供跟踪事件和使用跟踪事件的能力。跟踪事件包含事件标头和描述应用程序或操作当前状态的提供程序定义的数据。您可以使用这些事件调试应用程序,并执行容量和性能分析。

如适用
当您想要检测应用程序,将用户或内核事件记录到日志文件中,并从日志文件或实时地使用事件时,请使用ETW。

开发者受众
ETW是为编写用户模式应用程序的C和c++开发人员设计的。

运行时需求
ETW包含在Microsoft Windows 2000及以后的版本中。