c ++调试Windows上的日志记录

时间:2015-10-19 18:26:20

标签: c++ windows logging

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

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

编辑:

使用这样的东西最常见吗?

the ARM ELF spec

2 个答案:

答案 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及更高版本中。