将错误打印到Cocoa/Objective-C中的文件

将错误打印到Cocoa/Objective-C中的文件,objective-c,cocoa,macos,Objective C,Cocoa,Macos,各位计算机人好 任何愿意帮忙的人都会得到我的感激;) 只是想知道什么是将错误打印到文件的最佳方法,即,如果我的可执行文件崩溃,我可以记录发生了什么 这将是可可色、Objective-C或C 谢谢 埃里克 我希望我的问题不要太笼统或含糊。如果你需要澄清,请告诉我 如果你的应用程序崩溃,它会自动将崩溃日志写入~/Library/Logs/CrashReporter。崩溃日志将包含许多有用的信息,包括堆栈跟踪和注册表状态。您无需执行任何操作即可启用此功能 对于其他不导致崩溃的错误消息,可以使用NSLo

各位计算机人好

任何愿意帮忙的人都会得到我的感激;)

只是想知道什么是将错误打印到文件的最佳方法,即,如果我的可执行文件崩溃,我可以记录发生了什么

这将是可可色、Objective-C或C

谢谢

埃里克


我希望我的问题不要太笼统或含糊。如果你需要澄清,请告诉我

如果你的应用程序崩溃,它会自动将崩溃日志写入
~/Library/Logs/CrashReporter
。崩溃日志将包含许多有用的信息,包括堆栈跟踪和注册表状态。您无需执行任何操作即可启用此功能


对于其他不导致崩溃的错误消息,可以使用
NSLog
将信息写入应用程序的日志文件,该日志文件存储在
~/Library/Logs
。日志消息将以时间戳作为前缀。默认情况下,
NSLog
写入全局控制台日志,但该行为可由修改。

谢谢@mipadi。但我假设/Logs/CrashReporter上的信息也会包含来自机器上其他应用程序的信息,而我不想要这些信息。理想情况下,我的应用程序中的错误将位于我的应用程序创建的唯一文件中,并且我可以让用户发送给我。你知道我的意思吗?是的。在
~/Library/Logs/CrashReporter
中,每个应用程序(实际上,每个应用程序的每次崩溃)都有单独的崩溃日志。默认情况下,
NSLog
打印到全局控制台日志,但是可以通过设置
STDERR\u FILENO
来修改。不能设置
STDERR\u FILENO
,因为它是一个常量。但是,您可以在其上复制另一个文件描述符,这就是重定向自己的stderr的方式。