我正在编写一个跨平台的应用程序,并正在深入研究它的错误处理。我的一种方法是向用户显示一个消息框,当出现严重错误时,会出现用户友好的错误消息,同时将更详细的以开发人员为中心的信息打印到系统日志中,以防止出现严重错误不需要直接窃听用户的关键问题。这样,我可以要求用户在报告问题时检查或发送应用程序的任何输出。
为此,我可以在linux中使用syslog,在OS X中使用NSLog / Console.app。但我不知道Windows中可以为普通用户访问的任何等效功能。我知道DebugView.exe和OutputDebugString(),但我不认为这是一个很好的解决方案,因为DebugView并不是Windows的标准,并且不是很容易访问 - 它很明显意味着供开发人员使用。
这里最好的方法是什么?我是否应该将应用程序输出到某个合理的日志文件并要求用户发送?我是否应该在Linux和OS X中执行相同操作而不是使用其系统范围的日志记录工具?或者是其他东西?我很好奇人们在这种情况下做了什么,以及什么是最佳实践。
答案 0 :(得分:2)
记录应用程序错误的官方地点是Windows Event Log。但是这个API的复杂性是一个很高的入门门槛,很少有应用程序打扰 - 因此很少有用户费心去查阅所说的事件日志。
tl; dr - 使用log4cxx或类似的日志框架写入文本文件。