我很好奇在Windows上为c ++ win32应用程序记录调试打印信息的最常见和/或可接受的方式是什么。我没有使用visual studio,正在与GCC进行编译。
我习惯在Android上开发,使用logcat编写和监控日志。 win32有这样的东西吗?
编辑:
使用这样的东西最常见吗?
答案 0 :(得分:1)
虽然它没有提供过滤和日常/大小翻转的附加功能OutputDebugString
是一个很好的API,允许您发送调试日志消息。
可以使用特殊程序检索和显示输出,当程序未启动时,输出只会被忽略。
在本文中阅读更多相关内容:How to view output of OutputDebugString?(可以在C ++中使用相同的API调用)
根据输出的大小,您可能希望使用Windows的事件日志或类似的日志框架 http://log4cpp.sourceforge.net/
答案 1 :(得分:1)
Windows中登录的标准基础结构是Event Tracing。它可以在操作系统的所有部分中使用(并使用),包括用户模式应用程序和内核模式模块:
<强>目的强>
Windows事件跟踪(ETW)为应用程序编程人员提供了启动和停止事件跟踪会话,检测应用程序以提供跟踪事件以及使用跟踪事件的能力。跟踪事件包含事件标头和提供程序定义的数据,用于描述应用程序或操作的当前状态。您可以使用事件来调试应用程序并执行容量和性能分析。适用时
如果要检测应用程序,将用户或内核事件记录到日志文件,并使用日志文件中的事件或实时消耗事件,请使用ETW。开发人员
ETW专为编写用户模式应用程序的C和C ++开发人员而设计。运行时要求
ETW包含在Microsoft Windows 2000及更高版本中。