2011-05-30 31 views
0

我是新的Visual Studio中的Win32(C++)应用程序
在我工作的Java中,使用log4j例如日志很容易。
如何在Win32应用程序中完成日志记录?
我已经看到一些使用宏写入文件的代码。
我是否负责创建一些日志记录机制?
有没有一种标准的方式来登录win32?win32应用程序日志上的新手问题

感谢

回答

1

,因为你有log4j的体验另一种方法是使用log4net的,也有非常相似。

+0

我问,因为我不知道这个。它可以被Win32项目应用程序使用,对吧? – Cratylus 2011-05-30 21:17:35

1

“Windows应用程序”并不意味着什么,Java应用程序也可以在Windows上运行。有log4net将日志记录添加到.NET应用程序。 Log4cxx为使用C++编写的应用程序这样做。与log4j完全相同的方法。该项目的主页is here

+0

你正在写。我更正后(我认为) – Cratylus 2011-05-30 21:26:34

+1

对,我是对的。发布后,log4cxx可帮助您将日志记录添加到C++应用程序。 – 2011-05-30 21:38:32

1

这取决于谁去使用你的软件的日志工具:

  • Windows事件日志API是最好的,如果你正在编写需要由被支持的服务或“系统”类型的任务IT支持部门。 Windows支持工具支持远程访问系统事件日志以创建系统健康警报等。

除此之外,Windows没有方便的Logging API。因此,如果系统事件日志不合适,您需要自行打印。

  • 对于开发人员/调试目的theres OutputDebugString,将文本发送到您的调试器“输出”窗口。

  • 编写GUI应用程序时,使调试版本成为控制台应用程序非常方便,因此除GUI外还显示控制台窗口。 printf()可以向控制台显示消息。否则,我在Windows上构建的一些OSS项目确实包含了一个已经移植到windows的log4c变体。所以如果你真的需要的话,log4c可以被强制转换到windows上工作。

+0

我需要编写的应用程序必须在后台执行某些特定操作,并且通过消息框与用户进行的最小交互次数为 (例如,您是否要继续安装X应用程序?等等)。 所以我没有真正的GUI显示或控制台输出。 我目前正在使用的代码是使用一些宏将信息输出到一个文件。但代码不适合 ,因为它是从其他已经使用它的应用程序复制粘贴(即它被测试)。问题是它有很多 我不需要的东西,我不喜欢宏。 那么log4c如你所说,适合我吗? – Cratylus 2011-05-31 13:35:31

+0

wrt是Log4c合适的:这取决于正在使用的跟踪宏。如果它们是自定义的,那么无论如何你都需要编写自己的包装器。如果他们是Log4x“兼容”,那么集成log4c似乎是一种方式。 – 2011-05-31 13:57:24