【发布时间】:2009-10-16 18:00:02
【问题描述】:
通过应用程序 Utilities/Console.app,我可以看到应用程序的控制台输出。
有没有办法从另一个应用程序访问此日志?
更具体地说:我正在为我的应用程序编写一个崩溃处理程序,我希望它将控制台输出附加到崩溃信息。
【问题讨论】:
标签: macos console crash stdout
通过应用程序 Utilities/Console.app,我可以看到应用程序的控制台输出。
有没有办法从另一个应用程序访问此日志?
更具体地说:我正在为我的应用程序编写一个崩溃处理程序,我希望它将控制台输出附加到崩溃信息。
【问题讨论】:
标签: macos console crash stdout
啊,刚刚发现/var/log/system.log文件里面有这些信息。
【讨论】:
/var/log/system.log 并不是真正的解决方案,因为输出没有立即出现在那里(这是一个大问题,因为我的崩溃处理程序应该如何知道那里的一切都已完成),还有 grepping相关消息非常骇人听闻,然后,当我启动应用程序的几个实例时,我真的不知道正确的相关输出(除非我知道 pid,但即便如此,pid 也不是唯一的)。
知道,我非常满意的一个解决方案是,应用程序本身会跟踪所有控制台输出。它通过 fork 自身并将其输出传递到 fork 并在那里模拟 tee 工具来做到这一点,其中一个输出是一个特殊的日志文件。当它崩溃时,它会将日志文件的文件名发送到崩溃处理程序。
如果您有兴趣,请查看 OpenLieroX 源代码 (http://sourceforge.net/projects/openlierox)。
【讨论】: